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

Algun mecanismo para que no toquen el mismo registro en Java?

Estas en el tema de Algun mecanismo para que no toquen el mismo registro en Java? en el foro de Java en Foros del Web. Hola, estoy desarrollando un sistema y se me plantea la duda, que pasa si 2 personas de 2 pcs diferentes acceden al mismo registro y ...
  #1 (permalink)  
Antiguo 26/05/2014, 07:28
 
Fecha de Ingreso: mayo-2011
Mensajes: 31
Antigüedad: 13 años
Puntos: 0
Algun mecanismo para que no toquen el mismo registro en Java?

Hola, estoy desarrollando un sistema y se me plantea la duda, que pasa si 2 personas de 2 pcs diferentes acceden al mismo registro y le hacen un update al mismo tiempo? Hay forma de cubrir casos asi? Como lo manejan?

Aclaro que no estoy trabajando con threads.

Gracias
  #2 (permalink)  
Antiguo 26/05/2014, 07:36
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Algun mecanismo para que no toquen el mismo registro en Java?

Hola:

La solución "sencilla" es ignorar esos casos. El último que hace el update manda y "machaca" lo que haya hecho el anterior.

La siguiente opción es usar MySQL con InnoDB, que permite bloquear un registro. De esta forma, si un usuario quiere editar un registro, tu aplicación debe bloquearlo previamente de forma que sólo él puede modificarlo y desbloquearlo al terminar.

Finalmente, si optas según el otro post por la opción de RMI, tus clientes pueden solicitar la edición del registro a RMI y este aceptarla o denegarla según otros cliente la hayan solicitado ya o no. Viene a ser lo mismo que bloquear el registro con InnoDB, pero la gestión la haría tu servidor RMI en vez de la base de datos.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: sincronizacion
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 17:56.