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.