Я столкнулся с проблемой гибернации, которую просто не могу найти. Мы запускаем Hibernate 3.2.6 на JBoss 4.2.0 в приложении Spring 2.5.4 за JBossWS 2.0.1 (просто чтобы получить все версии в таблице).
Обычно это работает просто отлично, но иногда система самопроизвольно (т. Е. По какой-то причине в настоящее время нам не известна) переходит в состояние, когда некоторые запросы не выполняются при первом вызове Hibernate, с сообщением «org.hibernate.HibernateException: текущая транзакция не выполняется ». Это влияет на случайные запросы до перезапуска сервера. Я не могу воспроизвести это и в настоящее время "реагирую" на то, когда это происходит (пока только в тестовых средах.
Мне удалось вызвать такое же поведение, когда истекает время ожидания транзакции JBoss и код сервера переходит к вызовам Hibernate, но никогда без предшествующих журналов координатора Arjuna об отмене действия и никогда не повторялось при последующих вызовах.
Сверху головы я подозреваю, что «состояние» потока каким-то образом сохраняется из предыдущего вызова, и когда этот поток затем повторно используется для другого запроса, это не приводит к запуску транзакции. У меня есть практические знания о Hibernate, но не намного, но поскольку транзакции и сеансы работают иначе, это то, что я придумал.
Можете ли вы дать мне какие-либо указания на исследования и / или конфигурации, которые мне следует изучить?