sql >> Databasteknik >  >> RDS >> Oracle

Hur ställer man in timeout för anslutning i groovy sql?

Groovy SQL styr inte timeouten, det är upp till din drivrutin (Oracle i ditt fall). Om du vill ställa in en timeout för en fråga, ta en titt på det här svaret .

Om du vill ha en anslutningsnivåinställning (så att du kan återanvända SQL-objektet för flera frågor med timeout tillämpad på varje), måste du ställa in din egen anslutning och skicka den till Groovys SQL-fasad. Så här

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)

Notera setNetworkTimeout() metod lades till i Java 7. Om du använder en äldre version av Java, ta en titt på denna svar (du kan använda "oracle.jdbc.OracleDriver" istället för OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT fältet som svaret nämner om du vill undvika ett kompileringsberoende på Oracle-jars).

Återigen, eftersom Groovy's Sql inte ändrar eller kontrollerar någon av anslutningsinställningarna, kommer standard timeout att vara vad som än är standard för Oracles drivrutin.




  1. SQLiteDiskIOException:felkod 10:disk I/O-fel återställs på ICS och Samsung Nexus på DROP TABLE

  2. Överträdelse av integritetsbegränsning:1048 Kolumnen "taggable_id" kan inte vara null

  3. Kan en INITIELLT UPPSKJUTAD begränsning definieras med en Hibernate-kommentar?

  4. kopiera en kolumn från en tabell till en annan