Groovy SQL styrer ikke timeoutet, det er op til din driver (Oracle i dit tilfælde). Hvis du vil indstille en timeout på en forespørgsel, kan du se dette svar .
Hvis du ønsker en indstilling på forbindelsesniveau (så du kan genbruge SQL-objektet til flere forespørgsler med timeout anvendt på hver), skal du konfigurere din egen forbindelse og videregive den til Groovys SQL-facade. Sådan her
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)
Bemærk setNetworkTimeout()
metode blev tilføjet i Java 7. Hvis du bruger en ældre version af Java, så tag et kig på denne svar
(du kan bruge "oracle.jdbc.OracleDriver"
i stedet for OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT
felt, som svaret nævner, hvis du vil undgå en kompileringsafhængighed af Oracle-jars).
Igen, fordi Groovy's Sql ikke ændrer eller kontrollerer nogen af forbindelsesindstillingerne, vil standard timeout være, hvad end standarden er for Oracles driver.