2009-06-23 4 views
1

Der PL/SQL-Cursor wurde aus irgendeinem Grund gehängt, dies führt dazu, dass meine App hängt, wenn versucht wird, die ResultSet Schleife zu durchlaufen.
Zeitlimit java.sql.ResultSet

Gibt es eine Möglichkeit, dies zu behandeln, z. B. das Timing der Ergebnismenge, wenn die Datenbank hängt?

Antwort

1

Es gibt ein setQueryTimeout (int) in der Schnittstelle java.sql.Statement. Sie sollten es aufrufen, bevor Sie die executeQuery() aufrufen.

Sie können eine laufende Abfrage auch asynchron abbrechen, indem Sie cancel() für die Anweisung aufrufen.

Edit: Oracle JDBC Treiberversion 6 unterstützt diese Methoden sicher, da ich es in einem meiner Projekte verwende.

+0

Aber überprüfen Sie, dass Ihr JDBC-Treiber diese Funktion wirklich unterstützt, da es für ResultSets –

+0

@ GáborHargitai optional ist, wie kann ich das überprüfen? Speziell für den DB2 Universal JDBC Driver Provider google ich wie verrückt und finde keine Dokumentation, die mir hilft :( – Delfic