Веб-приложение с Spring MVC и JDB C развернуто в websphere, и почти ежедневно я мог видеть 2-4 генерируемых файла javacore. Проанализировав эти файлы с помощью IBM jca.jar
, я обнаружил ниже проблемы, из-за которых поток фактически БЛОКИРУЕТСЯ
Состояние - Заблокировано
Монитор - Ожидание блокировки монитора на oracle / jdbc / driver / T4CConnection@0x00000000C889BAE0
Java Стек - в oracle / jdbc / driver / PhysicalConnection.isClosed (PhysicalConnection. java: 1481 (Скомпилированный код))
Действие триггера - Получено 1 событие дампа TISIGINFO «пользователь» (00004000)
Следующая строка ошибки обозначает функцию, которая вызывает метод isClosed()
.
В коде я мог видеть строки ниже.
boolean validateConnection(Connection connection){
if(connection != null && !connection.isClosed()){
return true;
}
return false;
}
Вышеупомянутый метод вызывается для каждого HTTP-запроса, сделанного пользователем, и сеанс привязан к HTTP-сеансу.
Но когда и как создается этот javacore, я не понимаю.
Я вижу следующую ссылку , которая выглядит связанной с этой проблемой.
Oracle Зависимость
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
Oracle Версия - Oracle Database 11g Enterprise Edition Release 11.2.0.4.0
Версия Websphere - 8.5.5.17