Я поддерживаю какой -то устаревший код, и до недавнего времени он был хорошо. Я ищу, есть ли настройка для JDBC Oracle Thin Connection, где я могу указать тайм -аут простара через Java (без объединения соединений)? Много ресурсов в Интернете см. В объединении соединений ... возможно ли это даже в моем случае (чтобы указать тайм-аут простоя, в ситуации, не являющейся наступлением)? Или время на холостом ходу - это настройка в конкретной учетной записи пользователя DB? Выберите * из user_resource_limits; Однако все вернулось «Неограниченное». Возможно ли для другого значения (скажем, из соединения JDBC) переопределить «неограниченный»?
Таким образом, задание удерживается на соединении, в то время как мы активно запрашиваем другую систему через ссылки DB для хорошей продолжительности ~ 2+ часов ... Теперь, почему время -аут -аут даже вступит в игру? < /p> < /li>
< /ol>
Обновление #2 < /strong> < /p>
Мы переключились на другую учетную запись (у которой такой же тип настройки ссылки БД), и задание смогла закончить, как это было раньше. Какой вид указывает на что -то странное с профилем пользователя Oracle? Но, как я уже сказал, запрос user_resource_limits показывает, что оба пользователя имеют «неограниченное» время простоя. DBA довольно подтвердил это тоже. Что еще может вызвать эту разницу? < /p>
Обновление #3 < /strong> < /p>
Stack Trace и тому подобное. < /p>
java.sql.SQLException: ORA-02396: exceeded maximum idle time, please connect again
ORA-06512: at line 1
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:184)
at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:873)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1086)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2984)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3076)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4273)
at com.grocery.stand.Helper.getAccess(Helper.java:216)
at com.grocery.stand.fruitbasket.Dao.getPriceData(Dao.java:216)
at com.grocery.stand.fruitbasket.Dao.getPricees(Dao.java:183)
at com.grocery.stand.fruitbasket.UpdatePrice.updateAllFruitPrices(UpdatePrice.java:256)
at com.grocery.stand.fruitbasket.UpdatePrice.main(UpdatePrice.java:58)
SQL Exception while getting Data from SYSTEM_B
Exception while updating pricing : ORA-01012: not logged on
Exception in thread "main" java.sql.SQLException: ORA-01012: not logged on
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:277)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:129)
at oracle.jdbc.driver.T4CConnection.do_rollback(T4CConnection.java:478)
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1045)
at com.grocery.stand.Helper.rollBack(Helper.java:75)
at com.grocery.stand.fruitbasket.UpdatePrice.updatePartNumbers(UpdatePrice.java:291)
at com.grocery.stand.fruitbasket.UpdatePrice.main(UpdatePrice.java:58)
< /code>
код подключения < /strong> < /p>
public static Connection openConnection() throws SQLException {
String userName = propBundle.getString(DB_UID);
String password = propBundle.getString(DB_PWD);
String url = propBundle.getString(DB_URL);
Connection conn = null;
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn = (Connection) DriverManager.getConnection(url, userName,
password);
conn.setAutoCommit(false);
} catch (SQLException sqle) {
sqle.printStackTrace(System.out);
throw sqle;
}
return conn;
}
< /code>
Ошибка возникает в линии execute () < /code> < /strong> < /p>
public static void getSystemAccess(Connection dbConnection) throws SQLException {
try {
CallableStatement authStmt = null;
String authorize = "CALL ABC.ACCESS_PROCEDURE@some_db_link()";
authStmt = dbConnection.prepareCall(authorize);
authStmt.execute();
authStmt.close();
} catch (SQLException sqle1) {
sqle1.printStackTrace();
throw new SQLException(sqle1.getMessage());
}
}
Подробнее здесь: https://stackoverflow.com/questions/223 ... le-timeout
JDBC Oracle Thin ORA-02396 Timeout Connection Connection ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Oracle.ManagedDataAccess бросает ORA-50000 и Oracle.ManagedDataAccess.core Ошибки ORA-12545
Anonymous » » в форуме C# - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-
-
-
SQL Server Timeout Timeout Post-Login Phase Docker .net8 openssl3.0 уже конфигурация для TLSV1
Anonymous » » в форуме C# - 0 Ответы
- 52 Просмотры
-
Последнее сообщение Anonymous
-