Oracle
 sql >> Database >  >> RDS >> Oracle

Impostazione del timeout di rete per la connessione JDBC

setNetworkTimeout() è stato introdotto in JDBC 4.1 e non era presente in JDBC 4.0.

Avrai bisogno di ojdbc7 poiché JDBC 4.1 è disponibile solo con Java 7 se desideri utilizzare setNetworkTimeout() metodo.

Il problema di fondo è che l'aggiunta di metodi alle interfacce nelle specifiche successive può causare la rottura con errori di implementazioni precedenti di tali interfacce. Si spera che una delle nuove funzionalità del prossimo Java 8, i metodi predefiniti, renderà questo un problema leggermente inferiore.

Apparentemente esiste anche una proprietà del driver JDBC per Oracle che può modificare i timeout dei socket.

Puoi anche provare a utilizzare questa proprietà Oracle JDBC per impostare il timeout del socket se stai utilizzando il thin driver:

Properties props = new Properties();
props.setProperty("user", "dbuser");
props.setProperty("password", "dbpassword");
props.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUT, "2000");

Connection con = DriverManager.getConnection("<JDBC connection string>", props);