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

Come impostare il timeout di connessione in groovy sql?

Groovy SQL non controlla il timeout, dipende dal tuo driver (Oracle nel tuo caso). Se vuoi impostare un timeout su una query, dai un'occhiata a questa risposta .

Se desideri un'impostazione del livello di connessione (in modo da poter riutilizzare l'oggetto Sql per più query con il timeout applicato a ciascuna), devi configurare la tua connessione e passarla alla facciata Sql di Groovy. Come questo

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)

Nota il setNetworkTimeout() è stato aggiunto in Java 7. Se stai utilizzando una versione precedente di Java, dai un'occhiata a questo risposta (puoi usare "oracle.jdbc.OracleDriver" invece di OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT campo che la risposta menziona se si desidera evitare una dipendenza di compilazione dai jar Oracle).

Ancora una volta, poiché Sql di Groovy non altera o controlla nessuna delle impostazioni di connessione, il timeout predefinito sarà qualunque sia l'impostazione predefinita per Oracle's Driver.