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

Como definir o tempo limite de conexão no groovy sql?


O Groovy SQL não controla o tempo limite, isso depende do seu Driver (Oracle no seu caso). Se você quiser definir um tempo limite em uma consulta, dê uma olhada em esta resposta .

Se você deseja uma configuração de nível de conexão (para poder reutilizar o objeto Sql para várias consultas com o tempo limite aplicado a cada uma), você precisa configurar sua própria conexão e passá-la para a fachada Sql do Groovy. Assim
def dev_env = [
  url:"jdbc:oracle:thin:@//aguat:1521/orcl",
  user:"ricky",
  password:"ricky",
  driver:"oracle.jdbc.OracleDriver"
]
Class.forName(dev_env['driver'])
def conn = DriverManager.getConnection(dev_env['url'], dev_env['user'],dev_env['password'])
conn.setNetworkTimeout(null, 10000)
def sql = new Sql(conn)

Observe o setNetworkTimeout() foi adicionado no Java 7. Se você estiver usando uma versão mais antiga do Java, dê uma olhada neste resposta (você pode usar "oracle.jdbc.OracleDriver" em vez de OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT campo que a resposta menciona se você quiser evitar uma dependência de compilação em jars Oracle).

Novamente, como o Sql do Groovy não altera ou controla nenhuma das configurações de conexão, o tempo limite padrão será qualquer que seja o padrão para o Driver do Oracle.