JSP (Java Server Page) - Bloquear un registro

 
Vista:

Bloquear un registro

Publicado por Lilian (1 intervención) el 07/12/2004 17:39:35
Hola Gracias de antemano por su ayuda.

Tengo lo siguiente, estoy mandando a consultar una base de datos, que contiene un solo registro con un solo campo(clave), el cual extraigo el valor le sumo 1 y luego ese mismo campo lo actualizo, pero tengo el problema que cuando entran dos o más personas al mismo tiempo, agarran el mismo valor, lo sobreescriben y todas agaran el mismo valor

Quisiera saber si hay una forma de bloquear el registro con Java o con alguna instruccion de SQL, y no atienda al siguiente usuario hasta que termine con el que esta trabajando.

Mi Base de datos esta en AS400 y estoy trabajando con JSP y JAVA.
Mil Gracias!!!
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:Bloquear un registro

Publicado por jose julian (5 intervenciones) el 07/12/2004 23:56:33
la verdad yo no conosco el sistema d bloqueos q use AS400 por q jamas lo he usado :P, pero puedes probar declarando el metodo como synchronized (con esto se supone q solo un usuario a la vez puede usar el metodo).
public synchronized int hacerAlgo()
{
sacar valor, incrementarlo o lo q sea q se haga
return valor;
}
saludos desde Sonora, Mexico. Espero t sea d ayuda
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:Bloquear un registro

Publicado por jose julian (5 intervenciones) el 08/12/2004 00:02:13
si no quieres sincronizar todo el metodo, puedes probar esto:
public int hacerAlgo()
{
sycrhonized(objeto) {
valor = objecto.EjecutarSentencia();
}
return valor;
}
ahi solo se sincroniza cuando ejecutas tu sentencia o proc. almacenado q me iamgino es cuando extraer el valor y lo modificas, en este caso el candado se reduce mas q cuando sincronizas todo el metodo.
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:Bloquear un registro

Publicado por azuluaga (1 intervención) el 14/01/2005 17:04:30
Puedes hacerlo por base de datos con una sentencia update:

UPDATE TABLA
SET CLAVE = CLAVE
WHERE CLAVE = ###;

De esta forma lo estás bloqueando sin cambiar el valor y sólo quedará libre cuando se haga un commit o un rollback.
Saludos.
www.geocities.com/javacolombia
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