Java - Observar base de datos

 
Vista:

Observar base de datos

Publicado por Fabrizio (8 intervenciones) el 29/07/2009 03:06:55
Hola, mi consulta es si se puede crear una especie de observer a una base de datos para actualizar una tabla cuando ésta se modifique.
Otra consulta: Como se puede observar otro programa que se está ejecutando en otra pc en red que compraten la base de datos? quiero que cuando un programa modifique la base de datos el otro se actualice, si alguien tiene una manera les agraedezco.

Saludos, Zerpa.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Observar base de datos

Publicado por Mario (40 intervenciones) el 29/07/2009 09:22:58
Buenas! No sé si hay algún componente que haga lo que tú buscas. Está la posibilidad de hacer lo contrario, en cuanto actualices los datos en tu programa que se actualizase automáticamente en la BD.
Así que la solución que yo tomaría posiblemente, sería la siguiente:

Me crearía una nueva tabla en la BD, en la que almacenar diversos datos, como opciones de configuración y cosas así. Serían dos columnas x ejemplo, una la descripción del dato y en otra el valor.

Uno de esos valores, sería la última fecha en la que se actualizó la BD.

Una vez hecho eso, solo te quedaría crearte algún tipo de triguer, según tu conveniencia, que cada vez que hubiese un insert, un update o un delete, te actualizase ese campo con la fecha y hora actuales.

Al tener ese dato siempre actualizado, tu aplicación debería comprobar periódicamente (mediante un demonio x ejemplo) la hora de la última actualización, y entonces actualizar los datos.

Para un funcionamiento más preciso y quizás más efectivo, podrias crear una tabla de log, en la que almacenases el tipo de acción llevada a cabo (insert, update o delete), la tabla donde se hizo y la hora. Así sabrías cada movimiento x separado y podrias saber a que tablas dirigirte cuando necesitases actualizar.

Quizás sea una opción más trabajosa de lo que esperabas... pero creo que te solucionaría el problema.

Si lo que tienes es simplemente una tabla en la que muestras datos... lo único que deberías hacer es actualizar esa tabla volviendo a consultar los datos mostrados cada cierto periodo de tiempo que tú mismo estipularías. Así actualizarías los datos a cada minuto, o cada segundo, segun tus necesidades.

Espero que te sirva al menos de orientación o que te inspire alguna idea mejor ; )

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Observar base de datos

Publicado por Fabrizio (8 intervenciones) el 29/07/2009 17:42:55
Muchas gracias por tu respuesta, te cuento que el programa en el que estoy trabajando es un proyecto de la universidad, y comentó específicamente el profesor que no usáramos algo que actualice cada determinado período de tiempo. La otra posibilidad era que cada instancia del programa que se está ejecutando en una pc de la red notifique a los demás que hubo un cambio, algo como un observer, pero no encuentro manera de hacerlo entre 2 programas.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Observar base de datos

Publicado por mario (622 intervenciones) el 29/07/2009 20:28:15
en caso concreto para la base de datos puedes usar un triger par aque cuando se actualize una tabla ese triger se ejecute para actualizar otras tablas.

para el caso del observer entre las aplicaciones puedes hacerlo de la siguiente manera:

Cuando la aplicacion ejecute un cambio en la BD , esta aplicacion debe mandarle un mensaje a la otra aplicacion de dicha actualizacion, este mensaje puede ser enviado usando diferentes tecnologias:

--Webservice
--JMS
--EJB (Usando un Message driven Bean)

Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar