Groovy SQL steuert das Timeout nicht, das liegt an Ihrem Treiber (in Ihrem Fall Oracle). Wenn Sie eine Zeitüberschreitung für eine Abfrage festlegen möchten, sehen Sie sich diese Antwort an .
Wenn Sie eine Verbindungsebeneneinstellung wünschen (damit Sie das SQL-Objekt für mehrere Abfragen mit jeweils angewendetem Timeout wiederverwenden können), müssen Sie Ihre eigene Verbindung einrichten und an die SQL-Fassade von Groovy übergeben. So
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)
Beachten Sie setNetworkTimeout()
-Methode wurde in Java 7 hinzugefügt. Wenn Sie eine ältere Version von Java verwenden, sehen Sie sich diese Antwort
(Sie können "oracle.jdbc.OracleDriver"
verwenden anstelle von OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT
Feld, das in der Antwort erwähnt wird, wenn Sie eine Kompilierungsabhängigkeit von Oracle-Jars vermeiden möchten).
Da Sql von Groovy keine der Verbindungseinstellungen ändert oder steuert, ist das Standard-Timeout wieder das, was auch immer der Standardwert für Oracles Treiber ist.