Oracle
 sql >> Base de données >  >> RDS >> Oracle

Java 1.6 et Oracle JDBC 14 setQueryTimeout ne fonctionnent pas

Découvrez comment fonctionne le délai d'expiration des requêtes dans le pilote Oracle JDBC ici :https://forums. oracle.com/forums/thread.jspa?threadID=550257

Pour faire court :

  1. Il faut un aller-retour complet vers la base de données pour annuler l'exécution SQL lorsque le délai expire. La base de données traitera la demande d'annulation quand elle en aura envie.
  2. Le mécanisme de temporisation du pilote n'est pas un mécanisme de haute précision. Étant donné que l'annulation de l'exécution nécessite de parler à la base de données via le réseau, il est inutile de rendre le pilote super précis. Même si le pilote était précis, les retards du réseau et le temps nécessaire à la base de données pour répondre à la demande d'annulation annuleraient la précision du pilote. Ainsi, le délai d'attente est le temps MINIMUM que le pilote accordera au SQL pour s'exécuter avant d'envoyer une annulation au serveur.