2017-02-02 10 views
1

Хотя миграции с Oracle 11g на Oracle 12 с, мы получаем ниже ошибок с использованием UCP (12.1.0.2.0)соединения вопрос решенный в ОГП и Oracle 12 с

java.sql.SQLException: The connection is closed: The connection is closed 
      at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:464) 
      at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:448) 
      at oracle.ucp.jdbc.proxy.JDBCConnectionProxyFactory.invoke(JDBCConnectionProxyFactory.java:307) 
      at oracle.ucp.jdbc.proxy.ConnectionProxyFactory.invoke(ConnectionProxyFactory.java:50) 
      at com.sun.proxy.$Proxy24.prepareStatement(Unknown Source) 

Это многопоточное приложение, где мы принимаем соединение с пулом UCP, используйте его, а затем закройте соединение. Однако для некоторых операций мы получаем вышеуказанную ошибку на линии - connection.prepareStatement (заявление) Мы используем PoolDataSource

Немногие вещи пытались 1) Использование значений по умолчанию для пула соединений и только установив минимум, максимум размер бассейна. 2) Установка setValidateConnectionOnBorrow, как истинный, 3) Установка setValidateConnectionOnBorrow как истинный и setValidateConnectionOnBorrow, как «SELECT 1 FROM DUAL» 4) с использованием меченого соединения 5) БД не отключает соединение после определенного времени, а также нет никаких брандмауэр, который блокирует соединение. 6) Использование setMaxConnectionReuseTime

Я упомянул несколько ссылок, которые показывают похожие проблемы. Однако он не показывает никакой резолюции https://community.oracle.com/thread/2183613

https://community.oracle.com/thread/2298699

The connection is closed when using Oracle UCP

Кто-нибудь сталкивались с подобным вопросом на Oracle 12С с UCP ?? Есть ли ошибка в последнем UCP?

+0

Эта проблема должна быть исправлена ​​в 12.2.0.1, которую можно скачать здесь: http://www.oracle.com/technetwork/database/features/jdbc/jdbc-ucp-122-3110062.html –

ответ

0

У меня нет проблем при использовании пула соединений Weblogic.

Я думаю, что проблема в том, что описано here for question oracle- db-java-sql-sqlexception-closed-connection.

Будьте уверены, что соединение НЕ закрыто перед тем, как позвонить prepareStatement() (обратите внимание на многопоточность).

Может добавить протоколирование, чтобы увидеть, если close() действительно не закрыта до prepareStatement() и попробовать значение протоколирования для connection.isValid() перед prepareStatement() вызова.

Можете ли вы привести пример кода?

 Смежные вопросы

  • Нет связанных вопросов^_^