2012-06-08 19 views
6

C'è un modo per interrompere o terminare una query Oracle di lunga durata in JDBC? Spesso finisce con il riavvio del server delle applicazioni per fare in modo che jdbc si disconnetta dal DB Oracle.Arresta o termina la query di lunga durata in JDBC

ricerca di una funzionalità simile a SQL Plus - Kill session in Java o JDBC

in SQL più

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

alcun indizio per eseguire in java?

+0

[Questa soluzione] (http://stackoverflow.com/questions/1526211/how-to-cancel-a-postgres-query-in-java-jdbc) è forse implementato dal driver Oracle. – assylias

+3

Sì, dovrebbe essere. Vedi [questa domanda] (http://stackoverflow.com/questions/656162/when-i-call-preparedstatement-cancel-in-a-jdbc-application-does-it-actually-k). – eis

risposta

6

Forse si è spento, ma avrei proposto di utilizzare JDBC Timeout. Ha il vantaggio aggiuntivo di terminare con grazia invece che con la forza.

Con i moderni server delle applicazioni, in genere è possibile definire il timeout JDBC dalla configurazione dell'origine dati.

+0

Ok notato. Grazie. – Azi

+0

Vorrei consentire all'utente di decidere quando terminare la query. Può essere modificato in runtime e implementare qualcosa come timeout di scorrimento? – supertonsky

+0

@supertonsky Non sono a conoscenza di tale funzionalità. – eis

4

short del timeout jdbc, se si esegue la query in un altro thread, è possibile utilizzare Statement.cancel() per eliminarlo.

1

Si può provare Statement.setQueryTimeout

Problemi correlati