Oracle
 sql >> Database >  >> RDS >> Oracle

Java 1.6 e Oracle JDBC 14 setQueryTimeout non funzionano

Scopri come funziona il timeout della query nel driver Oracle JDBC qui:https://forums. oracle.com/forums/thread.jspa?threadID=550257

Per farla breve:

  1. Ci vuole un round trip completo al database per annullare l'esecuzione SQL allo scadere del timeout. Il database si occuperà dell'elaborazione della richiesta di annullamento quando ne avrà voglia.
  2. Il meccanismo di timeout del driver non è un meccanismo ad alta precisione. Poiché in realtà l'annullamento dell'esecuzione richiede di parlare con il database tramite la rete, non ha senso rendere il driver super preciso. Anche se il driver fosse preciso, i ritardi di rete e il tempo richiesto dal database per rispondere alla richiesta di annullamento annullerebbero la precisione del driver. Quindi il timeout è la quantità MINIMA di tempo che il driver concederà all'SQL per l'esecuzione prima di inviare un annullamento al server.