2012-06-08 20 views
6

¿Hay alguna forma de detener o finalizar la consulta Oracle de larga ejecución en JDBC? A menudo termina con el servidor de aplicaciones de reinicio para que jdbc se desconecte de Oracle DB.Detener o finalizar la consulta de larga ejecución en JDBC

Buscando una funcionalidad similar a SQL Plus - Kill session en Java o JDBC

en SQL Plus

SQL> ALTER SYSTEM KILL SESSION 'sid,serial#'; 

ninguna pista para realizar en Java?

+0

[Esta solución] (http://stackoverflow.com/questions/1526211/how-to-cancel-a-postgres-query-in-java-jdbc) es tal vez implementado por el controlador de Oracle. – assylias

+3

Sí, debería ser. Ver [esta pregunta] (http://stackoverflow.com/questions/656162/when-i-call-preparedstatement-cancel-in-a-jdbc-application-does-it-actually-k). – eis

Respuesta

6

Posiblemente un poco apagado, pero yo propondría usar JDBC Timeout en su lugar. Tiene el beneficio adicional de terminar realmente con gracia en lugar de por la fuerza.

Con los modernos servidores de aplicaciones, generalmente puede definir el tiempo de espera JDBC desde la configuración del origen de datos.

+0

Bien observado. Gracias. – Azi

+0

Me gustaría dejar que el usuario decida cuándo finalizar la consulta. ¿Se puede cambiar eso en el tiempo de ejecución e implementar algo así como el deslizamiento del tiempo de espera? – supertonsky

+0

@supertonsky No conozco tal funcionalidad. – eis

4

corto del jdbc timeout, si ejecuta su consulta en otro hilo, puede usar Statement.cancel() para matarlo.

1

Usted puede intentar Statement.setQueryTimeout

Cuestiones relacionadas