Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Java 1.6 e Oracle JDBC 14 setQueryTimeout não está funcionando


Veja como o tempo limite de consulta funciona no driver Oracle JDBC aqui:https://forums. oracle.com/forums/thread.jspa?threadID=550257

Longa história curta:
  1. É preciso uma viagem completa até o banco de dados para cancelar a execução do SQL quando o tempo limite expirar. O banco de dados processará a solicitação de cancelamento quando achar necessário.
  2. O mecanismo de tempo limite do driver não é um mecanismo de alta precisão. Como o cancelamento da execução exige realmente conversar com o banco de dados pela rede, não há sentido em tornar o driver super preciso. Mesmo se o driver fosse preciso, os atrasos de rede e o tempo necessário para que o banco de dados respondesse à solicitação de cancelamento negaria a precisão do driver. Portanto, o tempo limite é a quantidade MÍNIMA de tempo que o driver dará ao SQL para executar antes de enviar um cancelamento ao servidor.