2009-06-23 6 views
1

Le curseur PL/SQl était en train d'être pendu pour une raison quelconque, ce qui fait que mon application se bloque lorsque j'essaie de faire défiler le ResultSet.
Délai d'expiration java.sql.ResultSet

Existe-t-il un moyen de gérer cela, comme de temporiser le jeu de résultats si la base de données se bloque?

Répondre

1

Il existe un paramètre setQueryTimeout (int) dans l'interface java.sql.Statement. Vous devriez l'appeler avant d'appeler le executeQuery().

Vous pouvez également annuler de manière asynchrone une requête en cours en appelant également cancel() sur la requête.

Editer: La version 6 du pilote Oracle jdbc prend en charge ces méthodes, car je l'utilise dans un de mes projets.

+0

Mais vérifiez que votre pilote JDBC supporte réellement cette fonctionnalité car elle est optionnelle pour ResultSets –

+0

@ GáborHargitai comment puis-je vérifier cela? Spécifiquement pour le DB2 Universal JDBC Driver Provider, je google comme un fou et ne trouve aucune documentation qui m'aide :( – Delfic