2011-05-06 12 views
12

¿Hay alguna manera de hacer que Connection.prepareStatement() arroje un error o un retorno, en lugar de esperar un bloqueo de fila?¿Cómo establecer el tiempo de espera de la consulta en PreparedStatement?

Estoy tratando de implementar la sincronización entre procesos con el uso de una declaración preparada, que no confirmo, por lo que toma un bloqueo de escritura en una fila específica. En los otros procesos, intenta preparar la instrucción sql, luego se cuelga mientras el proceso original finaliza. Necesito que esto me avise que está bloqueado, así que puedo detener la función y volver a intentarlo cada vez que se reprograma.

¿Alguna idea? He estado buscando en Google por días, y parece que no puedo encontrar un sí/no a esto.

+0

Puede ser específico de la base de datos: ¿qué DBMS estás usando? – DaveH

+0

Lo hará una vez que hayan transcurrido las 8 horas. – Chris

Respuesta

16

Im un tonto, me di cuenta de esto ayer y se olvidó ...

para resolverlo, lo hacen

preparedstatement = con.prepareStatement(query); 
preparedstatement.setQueryTimeout(seconds); 

y luego simplemente detectar la excepción.

+1

La documentación no dice nada acerca de '@desde Java 7 'y tampoco lo hizo ninguna otra persona. – EJP

+0

Tampoco pude encontrar pruebas, pero no me pareció tan difícil. Lo he eliminado – Chris

Cuestiones relacionadas