Weblogic JDBC-запрос застревает - PullRequest
0 голосов
/ 30 марта 2019

У меня есть сервер WebLogic и базовый модуль EJB с Spring Data JPA и Hibernate, связывающимися с базой данных Postgres. У меня также есть веб-приложение на другом управляемом сервере в том же домене.

Когда я пытаюсь запустить запрос к базе данных через репозиторий Spring Data, я вижу из журналов, что был вызван метод в репозитории, но последовательность застряла в этой точке. Я также подозреваю из журналов базы данных, что ни один запрос SQL никогда не достигал базы данных.

Я не вижу ошибок, кроме исключения, говорящего о том, что поток в веб-приложении застрял (а не в модуле EJB, который должен отправлять фактический запрос).

Это не длительный запрос, возможно, потому что он может выполняться часами, в то время как из pgAdmin я мог бы запросить таблицы менее чем за секунду.

Я думаю, что нашел причину. Я думал, что мне удалось избавиться от исключения, но кажется, что я просто скрыл это. Исключением является следующее: Exception Description: Error binding to externally managed transaction Internal Exception: weblogic.transaction.RollbackException: setRollbackOnly called on transaction. По какой-то причине трассировки стека нет в журналах.

В другом файле журнала (в этот момент я становлюсь еще более запутанным), я нахожу трассировку стека с неописуемым исключением:

 <ExecuteRequest failed
 java.lang.IllegalArgumentException.
java.lang.IllegalArgumentException
        at weblogic.rjvm.ConnectionManager$SearchKey.<init>(ConnectionManager.java:2401)
        at weblogic.rjvm.ConnectionManager.getConnectionInPairedConnTable(ConnectionManager.java:2338)
        at weblogic.rjvm.ConnectionManager.getConnectionInPairedConnTable(ConnectionManager.java:2326)
        at weblogic.rjvm.ConnectionManager.sendMsg(ConnectionManager.java:611)
        at weblogic.rjvm.RJVMImpl.send(RJVMImpl.java:1168)
        Truncated. see log file for complete stacktrace

Это сразу после того, как метод хранилища вызывается

...