java - ejemplo - Monitor de cambio de tabla de Oracle
mongodb sql (2)
Tengo una aplicación Java que está conectada a una vista en un Oracle db remoto.
¿Alguien sabe de una forma en Java para monitorear esta tabla en busca de cambios? Es decir, si hay inserciones de actualizaciones, etc., tendría que reaccionar.
Puede colocar un disparador INSERT / UPDATE / DELETE en la tabla para realizar alguna acción cuando se realicen cambios de ''datos'' en la tabla. (a diferencia de los cambios en la estructura de la tabla)
Creo que 10g también admite activadores de vistas.
pero no estoy seguro de cómo puedes notificar el proceso de Java de este otro luego por sondeo.
lo siento.
Es posible que pueda crear alguna solución donde la aplicación Java tenga un servidor de "escucha" y la base de datos lo devuelva un mensaje. pero eso suena difícil de mantener.
Justin Cave en los comentarios sugiere que podría configurar Oracle Streams para enviar registros de cambios lógicos (LCR) a los que una aplicación Java podría suscribirse a través de JMS. O el desencadenador podría escribir registros en una cola avanzada a la que Java podría suscribirse a través de JMS.
aún tendrá que desconfiar de las transacciones de Oracle ... debido a la forma en que funcionan las transacciones de Oracle, el activador activará el cambio, pero también puede disparar varias veces.
y en cualquier caso, la aplicación java no podría ''ver'' los cambios hasta que se haya realizado una confirmación.
Mire Oracle Change Notification , una función de Oracle tan interesante.
De la documentación de Oracle: "Notificación de cambio de base de datos es una función que permite a las aplicaciones cliente registrar consultas con la base de datos y recibir notificaciones en respuesta a cambios DML o DDL en los objetos asociados con las consultas. o la transacción DDL se compromete ".