Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment définir le délai de connexion dans Groovy SQL ?

Groovy SQL ne contrôle pas le délai d'attente, cela dépend de votre pilote (Oracle dans votre cas). Si vous souhaitez définir un délai d'expiration sur une requête, consultez cette réponse .

Si vous souhaitez un paramètre de niveau de connexion (afin de pouvoir réutiliser l'objet Sql pour plusieurs requêtes avec le délai d'attente appliqué à chacune), vous devez configurer votre propre connexion et la transmettre à la façade Sql de Groovy. Comme ça

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)

Notez le setNetworkTimeout() a été ajoutée dans Java 7. Si vous utilisez une ancienne version de Java, consultez ceci réponse (vous pouvez utiliser "oracle.jdbc.OracleDriver" au lieu de OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT champ dont la réponse mentionne si vous souhaitez éviter une dépendance de compilation sur les jars Oracle).

Encore une fois, étant donné que Groovy's SQL ne modifie ni ne contrôle aucun des paramètres de connexion, le délai d'expiration par défaut sera celui par défaut pour le pilote d'Oracle.