Groovy SQLはタイムアウトを制御しません。それは、ドライバー(あなたの場合はOracle)次第です。クエリにタイムアウトを設定する場合は、
接続レベルの設定が必要な場合(それぞれにタイムアウトを適用して複数のクエリにSQLオブジェクトを再利用できるようにするため)、独自の接続を設定し、それをGroovyのSQLファサードに渡す必要があります。このように
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)
setNetworkTimeout()
に注意してください メソッドはJava7で追加されました。古いバージョンのJavaを使用している場合は、この回答
("oracle.jdbc.OracleDriver"
を使用できます OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT
の代わりに Oracle jarへのコンパイルの依存関係を回避したい場合は、回答に記載されているフィールド)。
繰り返しになりますが、GroovyのSQLは接続設定を変更または制御しないため、デフォルトのタイムアウトはOracleのドライバのデフォルトになります。