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

Définition du délai d'expiration du réseau pour la connexion JDBC

setNetworkTimeout() a été introduit dans JDBC 4.1 et n'était pas présent dans JDBC 4.0.

Vous voudrez ojdbc7 puisque JDBC 4.1 n'est venu avec Java 7 que si vous voulez utiliser setNetworkTimeout() méthode.

Le problème sous-jacent est que l'ajout de méthodes aux interfaces dans des spécifications ultérieures peut entraîner la rupture d'anciennes implémentations de ces interfaces avec des erreurs. L'une des nouvelles fonctionnalités du prochain Java 8, les méthodes par défaut, réduira légèrement ce problème.

Apparemment, il existe également une propriété de pilote JDBC pour Oracle qui peut modifier les délais d'expiration des sockets.

Vous pouvez également essayer d'utiliser cette propriété Oracle JDBC pour définir le délai d'expiration du socket si vous utilisez le pilote léger :

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);