我有一个WebLogic服务器和一个基本的EJB模块,带有Spring Data JPA和Hibernate,并与Postgres数据库进行通信。我还在同一域的另一台受管服务器上有一个Web应用程序。
当我尝试通过Spring Data存储库启动对数据库的请求时,从日志中看到存储库中的方法已被调用,但是此时序列卡住了。我还从数据库日志中怀疑没有SQL请求到达数据库。
我没有看到任何错误,除了一个异常,该异常表明Web应用程序上的线程被卡住了(不是在EJB模块上,该线程应该发送实际的请求)。
这可能不会持续很长时间,因为它可能已经进行了几个小时,而从pgAdmin中,我可以在一秒钟内请求表。
我想我找到了原因。我以为我设法摆脱了一个例外,但似乎我只是将其隐藏了。例外是:
Exception Description: Error binding to externally managed transaction
Internal Exception: weblogic.transaction.RollbackException: setRollbackOnly called on transaction
。出于某种原因,堆栈跟踪不在日志中。
在另一个日志文件中(这时我变得更加困惑),我找到了一个具有非描述性异常的stacktrace:
<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
就在调用存储库方法之后