title: ORA-02067 error on Spring MVC / Oracle / Tomcat
body: <p>Randomly my Spring MVC/Oracle 11G/Tomcat 7 application is throwing the following error: “ORA-02067: transaction or savepoint rollback required”</p>
  
  <p>Once that error appears ALL subsequent operations to the database that uses that same connection through the Tomcat will fail throwing the ORA-02067 error.</p>
  
  <p>Example:</p>
  
  <pre><code>"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",
  </code></pre>
  
  <p>Curiously, if I call that same Oracle package/procedure from other connection or application, it works.</p>
  
  <p>The error stops only on the Spring application the moment the administrator restart the Tomcat.</p>
  
  <p>My theory is there is a transaction that is failing and is not doing a rollback. Because the Tomcat is using a pool of JDBC connections, the error persists on the application. </p>
  
  <p>I have not being able to reproduce that on the development environment.</p>
  
  <p>Does Oracle provides tools to pinpoint the culprit transaction?  Is there any view that display transaction that are pending a rollback?</p>
  
  <p>Thanks </p>