Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC/Oracle/Tomcat上的ORA-02067错误_Java_Spring_Oracle_Transactions_Tomcat7 - Fatal编程技术网

Java Spring MVC/Oracle/Tomcat上的ORA-02067错误

Java Spring MVC/Oracle/Tomcat上的ORA-02067错误,java,spring,oracle,transactions,tomcat7,Java,Spring,Oracle,Transactions,Tomcat7,我的Spring MVC/Oracle 11G/Tomcat 7应用程序随机抛出以下错误:“ORA-02067:需要事务或保存点回滚” 一旦出现该错误,通过Tomcat使用相同连接的数据库的所有后续操作都将失败,并抛出ORA-02067错误 例如: "detailErrorInfo": "CallableStatementCallback; uncategorized SQLException for SQL [{call SCHEMAX.[PACKAGEX].PROCEDUREX()}];

我的Spring MVC/Oracle 11G/Tomcat 7应用程序随机抛出以下错误:“ORA-02067:需要事务或保存点回滚”

一旦出现该错误,通过Tomcat使用相同连接的数据库的所有后续操作都将失败,并抛出ORA-02067错误

例如:

"detailErrorInfo": "CallableStatementCallback; 
uncategorized SQLException for SQL 
[{call SCHEMAX.[PACKAGEX].PROCEDUREX()}]; SQL state [60000]; 
error code [604]; 
ORA-00604: error occurred at recursive SQL level 1
ORA-02067: transaction or savepoint rollback required;
nested exception is java.sql.SQLException: 
ORA-00604: error occurred at recursive SQL level 1
ORA-02067: transaction or savepoint rollback required",
奇怪的是,如果我从其他连接或应用程序调用同一个Oracle包/过程,它就会工作

该错误仅在管理员重新启动Tomcat时在Spring应用程序上停止

我的理论是,有一个事务正在失败,并且没有进行回滚。因为Tomcat使用的是JDBC连接池,所以错误仍然存在于应用程序上

我无法在开发环境中重现这一点

Oracle是否提供工具来查明交易的罪魁祸首?是否有任何视图显示挂起回滚的事务


谢谢

您能分享一下程序代码吗?包含
SCHEMAX.[PACKAGEX].PROCEDUREX()
任何数据库链接调用?您的理论是正确的。因为您使用的是Spring,所以可以使用p6spy包装您的数据源并查找PLSQL调用。您还应该将PLSQL生产代码编译到您的开发环境中,可能编译的过程不同。您可以共享过程代码吗?包含
SCHEMAX.[PACKAGEX].PROCEDUREX()
任何数据库链接调用?您的理论是正确的。因为您使用的是Spring,所以可以使用p6spy包装您的数据源并查找PLSQL调用。您还应该将PLSQL生产代码编译到您的开发环境中,可能编译过程有所不同。