JDBC Oracle Thin ORA-02396 Тайм-аут простоя соединенияJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JDBC Oracle Thin ORA-02396 Тайм-аут простоя соединения

Сообщение Anonymous »

Я поддерживаю некоторый устаревший код, и до недавнего времени он работал нормально. Я ищу, есть ли настройка для тонкого соединения JDBC Oracle, где я могу указать время простоя через Java (без объединения в пул соединений)? Многие онлайн-ресурсы относятся к пулу соединений... возможно ли это вообще в моем случае (указать тайм-аут простоя в ситуации отсутствия пула)? Или время простоя является настройкой конкретной учетной записи пользователя БД?

Обновления + вопросы
  • Мне удалось войти в систему как пользователь и выполнить запрос, чтобы попытаться узнать ограничения ресурсов. выберите * из USER_RESOURCE_LIMITS; Однако все вернулось «НЕОГРАНИЧЕННО». Возможно ли, чтобы другое значение (скажем, из соединения JDBC) переопределило «UNLIMITED»?
  • Таким образом, задание сохраняется на соединении, в то время как мы активно запрашиваем другую систему через ссылки на БД в течение ~2+ часов... Теперь, почему будет ли вообще иметь значение тайм-аут простоя?
Обновление №2

Мы переключились на другую учетную запись (с такой же настройкой связи с БД), и задание удалось завершить, как и раньше. Что указывает на какие-то проблемы с профилем пользователя Oracle? Но, как я уже сказал, запрос USER_RESOURCE_LIMITS показывает, что у обоих пользователей есть «НЕОГРАНИЧЕННОЕ» время простоя. DBA тоже это подтвердил. Что еще может быть причиной этой разницы?

Обновление №3

Трассировка стека и тому подобное.
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)


Код подключения

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


Ошибка при выполнении строки()

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • JDBC Oracle Thin ORA-02396 Timeout Connection Connection
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • JDBC Oracle Thin ORA-02396 Timeout Connection Connection
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Oracle.ManagedDataAccess бросает ORA-50000 и Oracle.ManagedDataAccess.core Ошибки ORA-12545
    Anonymous » » в форуме C#
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Расчеты времени простоя системы Windows и общая продолжительность простоя в коде С#?
    Anonymous » » в форуме C#
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Проблема с тестом AndroidComposeRule. Тайм-аут ресурса простоя: возможно, из-за занятости композиции
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»