У меня есть приложение, работающее на Websphere Portal Server внутри Websphere Application Server 6.0 (WAS). В этом приложении для одной конкретной функции, выполнение которой занимает много времени, я запускаю новый поток, который выполняет это действие. Этот новый поток открывает новый сеанс из Hibernate и начинает выполнять с ним транзакции БД. Иногда (не удалось увидеть шаблон) транзакции внутри потока работают нормально, и процесс завершается успешно. В других случаях, однако, я получаю ошибки ниже:
org.hibernate.exception.GenericJDBCException: could not load an entity: [OBJECT NAME#218294]
...
Caused by: com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: Connection is closed.
Method cleanup failed while trying to execute method cleanup on ManagedConnection WSRdbManagedConnectionImpl@642aa0d8 from resource jdbc/MyJDBCDataSource. Caught exception: com.ibm.ws.exception.WsException: DSRA0080E: An exception was received by the Data Store Adapter. See original exception message: Cannot call 'cleanup' on a ManagedConnection while it is still in a transaction..
Как я могу остановить это? Почему кажется, что WAS хочет разорвать мои соединения, хотя они еще не закончили. Есть ли способ остановить WAS от попытки закрыть это конкретное соединение?
Спасибо