Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Festlegen des Netzwerk-Timeouts für die JDBC-Verbindung

setNetworkTimeout() wurde in JDBC 4.1 eingeführt und war in JDBC 4.0 nicht vorhanden.

Sie benötigen ojdbc7, da JDBC 4.1 nur mit Java 7 eingeführt wurde, wenn Sie setNetworkTimeout() verwenden möchten Methode.

Das zugrunde liegende Problem ist, dass das Hinzufügen von Methoden zu Schnittstellen in späteren Spezifikationen dazu führen kann, dass ältere Implementierungen dieser Schnittstellen mit Fehlern abbrechen. Eines der neuen Features des kommenden Java 8, Standardmethoden, wird dieses Problem hoffentlich etwas weniger stören.

Anscheinend gibt es auch eine JDBC-Treibereigenschaft für Oracle, die Socket-Timeouts ändern kann.

Sie können auch versuchen, diese Oracle JDBC-Eigenschaft zu verwenden, um das Socket-Timeout festzulegen, wenn Sie den Thin-Treiber verwenden:

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