Foros del Web » Programación para mayores de 30 ;) » Java »

Notificar cuando un tabla tenga un nuevo registro

Estas en el tema de Notificar cuando un tabla tenga un nuevo registro en el foro de Java en Foros del Web. Bunas amigos llevo varios días tratando de hacer lo siguiente. tengo un sistema en una red LAN con 10 usuarios echo con java SWING. es ...
  #1 (permalink)  
Antiguo 01/07/2015, 08:09
 
Fecha de Ingreso: enero-2011
Mensajes: 13
Antigüedad: 13 años, 2 meses
Puntos: 0
Notificar cuando un tabla tenga un nuevo registro

Bunas amigos llevo varios días tratando de hacer lo siguiente.

tengo un sistema en una red LAN con 10 usuarios echo con java SWING. es un sistema que genera una requisición compra de materiales. y necesito que cuando uno de los usuarios genere una nueva requisición, al departamento de compras le llegue una notificación a los usuarios que estén en el sistema.


Estaba pensando en lo siguiente...

hacer una consulta a la Base de datos con el Timer cada 10 segundos para verificar si existen nuevos registros.

Pero

Creo que no es la solución mas adecuada porque el sistema esta instalado en 10 maquinas y las 10 maquinas tiene que hacer una consulta casa 10 segundos. existe alguna otra forma mejor a la que yo estaba pensando ?

Muchas gracias espero de su ayuda de verdad ya que tengo tiempo en esto y quiero conseguir la mejor solución posible para no saturar la base de datos ya que tiene otros sistemas aparte de este.

Mi base de datos es Oracle 10g y estoy usando Hibernate por si sirve de algo
  #2 (permalink)  
Antiguo 01/07/2015, 10:08
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Notificar cuando un tabla tenga un nuevo registro

¿La compra se hace desde tu aplicación?¿La notificación tiene que ser inmediata o cuando vayan a hacer algo?
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 01/07/2015, 10:46
 
Fecha de Ingreso: enero-2011
Mensajes: 13
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Notificar cuando un tabla tenga un nuevo registro

Si la Notificación tiene que ser inmediata, el proceso es el siguiente . cuando en el almacén requieren la compra de algún producto, entran en una pantalla donde ingresan que producto quieren , que cantidad y se guarda. en ese momento le debe llegar una notificación al departamento de compras que se genero una nueva requisición.
  #4 (permalink)  
Antiguo 01/07/2015, 12:49
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Notificar cuando un tabla tenga un nuevo registro

1. La que menos me gusta es la que comentas, que cada x tiempo hagan una petición a una base de datos. Por 10 aplicaciones que hagan consultas simples no vas a afectar a la base de datos. No será el fin del mundo si se hace una comprobación cada 5 minutos por ejemplo.

2. Implementa un cliente de correo de forma que se envíe un correo al departamento adecuado.

3. Utiliza la comunicación por sockets, que la aplicación de compras ejerza de servidor o crea un servidor.
https://portfoliogabrielfcr.wordpres...sando-sockets/

4. Utiliza un flag, un fichero en un directorio compartido o en un servidor, y que sea la aplicación/perfil de los de compras la única que esté comprobando cada x tiempo si hay algo nuevo.

5. Usa un gestor de colas
http://www.adictosaltrabajo.com/tutoriales/active-mq/
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 02/07/2015, 04:16
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: Notificar cuando un tabla tenga un nuevo registro

En Oracle por ejemplo está el PL SQL que te permite hacer triggers (disparadores) que hacen acciones de forma automática según lo que tengas programado, por ejemplo puedes programar que ante una nueva orden INSERT realice X acción. Pero eso lo hace el propio sistema de base de datos. SQL Server por ejemplo tiene Transact SQL que tendrá también sus disparadores.

Pero todo eso lo hace el propio gestor de base de datos. Yo pienso que hacerlo así en vez de que tu programa acceda a la base de datos y compare datos es mucho más eficiente. Aun así, seguramente si que puedas controlarlo con tu programa. Pero aún haciéndolo de la manera más eficiente... seguramente no llegue a serlo tanto como el propio gestor de base de datos.
  #6 (permalink)  
Antiguo 02/07/2015, 08:10
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Notificar cuando un tabla tenga un nuevo registro

Cita:
En Oracle por ejemplo está el PL SQL que te permite hacer triggers (disparadores) que hacen acciones de forma automática según lo que tengas programado, por ejemplo puedes programar que ante una nueva orden INSERT realice X acción. Pero eso lo hace el propio sistema de base de datos. SQL Server por ejemplo tiene Transact SQL que tendrá también sus disparadores.

Pero todo eso lo hace el propio gestor de base de datos. Yo pienso que hacerlo así en vez de que tu programa acceda a la base de datos y compare datos es mucho más eficiente. Aun así, seguramente si que puedas controlarlo con tu programa. Pero aún haciéndolo de la manera más eficiente... seguramente no llegue a serlo tanto como el propio gestor de base de datos.
Creo que no has entendido la pregunta, el problema es que las aplicaciones que están corriendo tienen que enterarse de que ha habido un cambio, y con el trigger no lo soluciona.

El trigger sería útil si los usuarios al recibir el aviso tuvieran que ejecutar un proceso en la base de datos, porque se ejecutaría sin necesidad de avisar al usuario.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: registro, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:21.