java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction

Spring JIRA | Sam Carr | 1 decade ago
  1. 0

    It seems that when an exception of any sort is thrown out of a *non-transactional* DAO call, the Oracle DB connection can get left in a strange limbo state. Thus, the next *transactional* code to use the same DB connection will see the following exception: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1687) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1653) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1600) at oracle.jdbc.OracleConnectionWrapper.setTransactionIsolation(OracleConnectionWrapper.java:162) at org.springframework.jdbc.datasource.DataSourceUtils.prepareConnectionForTransaction(DataSourceUtils.java:173) at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:192) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:283) at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:226) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:89) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176) at $Proxy29.qqDemonstrateSetTransactionBugStep2(Unknown Source) at com.py.controller.SETTRANSACTIONTestController.handleRequestInternal(SETTRANSACTIONTestController.java:22) ...snipped. The issues is further debated in the Spring forums, with another user able to recreate the issue: http://forum.springframework.org/showthread.php?t=25423 Presumably on the non-transactional call, some code is calling Oracle with "SET TRANSACTION ..." to setup some transactional info, but is never resetting that transaction. Perhaps the transaction is being left as neither committed or rolled back, so when the next DAO call comes along to start a real transaction Oracle barfs. Note that it is a documented oddity of the Oracle JDBC driver that it explicitly does not reset transactional state on connections when they are returned to the pool. This means that the next user of the connection stumbles over the half-baked transaction. Presumably Spring should either not be doing anything transactional in the first place when making the non-transactional call, or it should correctly clean up after itself when the exception is thrown, leaving the DB connection in a proper state? Once a DB connection has been broken in this way, it stays broken until I restart Tomcat, hence this can totally bring a website to its knees.

    Spring JIRA | 1 decade ago | Sam Carr
    java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction
  2. 0

    It seems that when an exception of any sort is thrown out of a *non-transactional* DAO call, the Oracle DB connection can get left in a strange limbo state. Thus, the next *transactional* code to use the same DB connection will see the following exception: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1687) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1653) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1600) at oracle.jdbc.OracleConnectionWrapper.setTransactionIsolation(OracleConnectionWrapper.java:162) at org.springframework.jdbc.datasource.DataSourceUtils.prepareConnectionForTransaction(DataSourceUtils.java:173) at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:192) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:283) at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:226) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:89) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176) at $Proxy29.qqDemonstrateSetTransactionBugStep2(Unknown Source) at com.py.controller.SETTRANSACTIONTestController.handleRequestInternal(SETTRANSACTIONTestController.java:22) ...snipped. The issues is further debated in the Spring forums, with another user able to recreate the issue: http://forum.springframework.org/showthread.php?t=25423 Presumably on the non-transactional call, some code is calling Oracle with "SET TRANSACTION ..." to setup some transactional info, but is never resetting that transaction. Perhaps the transaction is being left as neither committed or rolled back, so when the next DAO call comes along to start a real transaction Oracle barfs. Note that it is a documented oddity of the Oracle JDBC driver that it explicitly does not reset transactional state on connections when they are returned to the pool. This means that the next user of the connection stumbles over the half-baked transaction. Presumably Spring should either not be doing anything transactional in the first place when making the non-transactional call, or it should correctly clean up after itself when the exception is thrown, leaving the DB connection in a proper state? Once a DB connection has been broken in this way, it stays broken until I restart Tomcat, hence this can totally bring a website to its knees.

    Spring JIRA | 1 decade ago | Sam Carr
    java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction
  3. 0

    I noticed this error during a large-sh test run. it appeared only twice in the log file, once early in the log file, and once during shut down. The shutdown failed, and I suspect that the error prevents the processing of any messages. First error message: 2014-11-14T16:20:24.905-0500 SEVERE IEPSEaaa03006: IEP service engine heart beat thread failed java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy30.setTransactionIsolation(Unknown Source) at com.sun.jbi.engine.iep.core.runtime.util.Token.<init>(Token.java:60) at com.sun.jbi.engine.iep.core.runtime.DefaultIEPEngine.start(DefaultIEPEngine.java:138) at com.sun.jbi.engine.iep.IEPSEHeartBeatThread.run(IEPSEHeartBeatThread.java:148) Second error message: 2014-11-14T16:38:49.211-0500 INFO OESE-1504: HTTP Server stopped 2014-11-14T16:38:49.222-0500 SEVERE DBBC Binding component shutdown completed. 2014-11-14T16:38:49.284-0500 SEVERE IEPSEaaa08025: Failed to stop the service unit : SMABankLendingCA-SMAPoolManagerIEP java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy30.setTransactionIsolation(Unknown Source) at com.sun.jbi.engine.iep.core.runtime.util.Token.<init>(Token.java:60) at com.sun.jbi.engine.iep.core.runtime.DefaultIEPEngine.stop(DefaultIEPEngine.java:204) at com.sun.jbi.engine.iep.IEPSEServiceUnitManager.stop(IEPSEServiceUnitManager.java:470) at com.sun.jbi.framework.ServiceUnitOperation.process(ServiceUnitOperation.java:188) at com.sun.jbi.framework.Operation.run(Operation.java:104) at java.lang.Thread.run(Thread.java:745) 2014-11-14T16:38:49.320-0500 INFO grizzlyHttpProtocol.stop 2014-11-14T16:38:49.324-0500 WARNING JBIFW2501: Error in ServiceUnitManager for Engine sun-iep-engine: <component-task-result> <component-name>sun-iep-engine</component-name> <component-task-result-details> <task-result-details> <task-id>stop</task-id> <task-result>FAILED</task-result> <message-type>ERROR</message-type> <exception-info> <nesting-level>0</nesting-level> <msg-loc-info> <loc-token>IepSeSum_Stop_1</loc-token> <loc-message>Service Unit stop error: ORA-01453: SET TRANSACTION must be first statement of transaction </loc-message> </msg-loc-info> <stack-trace> java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy30.setTransactionIsolation(Unknown Source) at com.sun.jbi.engine.iep.core.runtime.util.Token.&lt;init&gt;(Token.java:60) at com.sun.jbi.engine.iep.core.runtime.DefaultIEPEngine.stop(DefaultIEPEngine.java:204) at com.sun.jbi.engine.iep.IEPSEServiceUnitManager.stop(IEPSEServiceUnitManager.java:470) at com.sun.jbi.framework.ServiceUnitOperation.process(ServiceUnitOperation.java:188) at com.sun.jbi.framework.Operation.run(Operation.java:104) at java.lang.Thread.run(Thread.java:745) </stack-trace> </exception-info> </task-result-details> </component-task-result-details> </component-task-result> 2014-11-14T16:38:49.327-0500 WARNING JBIFW2500: ServiceUnitManager stack trace follows: javax.jbi.management.DeploymentException: <component-task-result> <component-name>sun-iep-engine</component-name> <component-task-result-details> <task-result-details> <task-id>stop</task-id> <task-result>FAILED</task-result> <message-type>ERROR</message-type> <exception-info> <nesting-level>0</nesting-level> <msg-loc-info> <loc-token>IepSeSum_Stop_1</loc-token> <loc-message>Service Unit stop error: ORA-01453: SET TRANSACTION must be first statement of transaction </loc-message> </msg-loc-info> <stack-trace> java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy30.setTransactionIsolation(Unknown Source) at com.sun.jbi.engine.iep.core.runtime.util.Token.&lt;init&gt;(Token.java:60) at com.sun.jbi.engine.iep.core.runtime.DefaultIEPEngine.stop(DefaultIEPEngine.java:204) at com.sun.jbi.engine.iep.IEPSEServiceUnitManager.stop(IEPSEServiceUnitManager.java:470) at com.sun.jbi.framework.ServiceUnitOperation.process(ServiceUnitOperation.java:188) at com.sun.jbi.framework.Operation.run(Operation.java:104) at java.lang.Thread.run(Thread.java:745) </stack-trace> </exception-info> </task-result-details> </component-task-result-details> </component-task-result> at com.sun.jbi.engine.iep.IEPSEServiceUnitManager.stop(IEPSEServiceUnitManager.java:477) at com.sun.jbi.framework.ServiceUnitOperation.process(ServiceUnitOperation.java:188) at com.sun.jbi.framework.Operation.run(Operation.java:104) at java.lang.Thread.run(Thread.java:745) Caused by: java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy30.setTransactionIsolation(Unknown Source) at com.sun.jbi.engine.iep.core.runtime.util.Token.<init>(Token.java:60) at com.sun.jbi.engine.iep.core.runtime.DefaultIEPEngine.stop(DefaultIEPEngine.java:204) at com.sun.jbi.engine.iep.IEPSEServiceUnitManager.stop(IEPSEServiceUnitManager.java:470) ... 3 more 2014-11-14T16:38:49.406-0500 SEVERE POJOSE-7522: Exception while executing for ME null. java.lang.IllegalStateException: JBIMR0025: Unexpected illegal state change. Pattern (http://www.w3.org/2004/08/wsdl/in-out) TARGET-State (1) java.lang.IllegalStateException: JBIMR0025: Unexpected illegal state change. Pattern (http://www.w3.org/2004/08/wsdl/in-out) TARGET-State (1) at com.sun.jbi.messaging.MessageExchangeProxy.nextState(MessageExchangeProxy.java:716) at com.sun.jbi.messaging.MessageExchangeProxy.handleAccept(MessageExchangeProxy.java:776) at com.sun.jbi.messaging.DeliveryChannelImpl.acceptInternal(DeliveryChannelImpl.java:235) at com.sun.jbi.messaging.DeliveryChannelImpl.accept(DeliveryChannelImpl.java:202) at com.sun.jbi.common.qos.messaging.BaseMessagingChannel.accept(BaseMessagingChannel.java:249) at org.glassfish.openesb.pojose.jbi.thread.InboundProcessor.run(InboundProcessor.java:168) 2014-11-14T16:39:49.446-0500 WARNING MessagingException Id(105693257251934-35845-136352936043550068) : javax.jbi.messaging.MessagingException: JBIMR0022: Operation unavailable - DeliveryChannel has been closed. 2014-11-14T16:39:49.446-0500 WARNING MessagingException Id(105693257251934-35845-136352939035530040) : javax.jbi.messaging.MessagingException: JBIMR0022: Operation unavailable - DeliveryChannel has been closed. 2014-11-14T16:39:49.446-0500 WARNING MessagingException Id(105693257251934-35845-136352939006460210) : javax.jbi.messaging.MessagingException: JBIMR0022: Operation unavailable - DeliveryChannel has been closed.

    JIRA | 2 years ago | Ivan M
    java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    SET TRANSACTION must be first statement of transaction

    Oracle Community | 1 decade ago | 807581
    java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction
  6. 0

    I noticed this error during a large-sh test run. it appeared only twice in the log file, once early in the log file, and once during shut down. The shutdown failed, and I suspect that the error prevents the processing of any messages. First error message: 2014-11-14T16:20:24.905-0500 SEVERE IEPSEaaa03006: IEP service engine heart beat thread failed java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy30.setTransactionIsolation(Unknown Source) at com.sun.jbi.engine.iep.core.runtime.util.Token.<init>(Token.java:60) at com.sun.jbi.engine.iep.core.runtime.DefaultIEPEngine.start(DefaultIEPEngine.java:138) at com.sun.jbi.engine.iep.IEPSEHeartBeatThread.run(IEPSEHeartBeatThread.java:148) Second error message: 2014-11-14T16:38:49.211-0500 INFO OESE-1504: HTTP Server stopped 2014-11-14T16:38:49.222-0500 SEVERE DBBC Binding component shutdown completed. 2014-11-14T16:38:49.284-0500 SEVERE IEPSEaaa08025: Failed to stop the service unit : SMABankLendingCA-SMAPoolManagerIEP java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy30.setTransactionIsolation(Unknown Source) at com.sun.jbi.engine.iep.core.runtime.util.Token.<init>(Token.java:60) at com.sun.jbi.engine.iep.core.runtime.DefaultIEPEngine.stop(DefaultIEPEngine.java:204) at com.sun.jbi.engine.iep.IEPSEServiceUnitManager.stop(IEPSEServiceUnitManager.java:470) at com.sun.jbi.framework.ServiceUnitOperation.process(ServiceUnitOperation.java:188) at com.sun.jbi.framework.Operation.run(Operation.java:104) at java.lang.Thread.run(Thread.java:745) 2014-11-14T16:38:49.320-0500 INFO grizzlyHttpProtocol.stop 2014-11-14T16:38:49.324-0500 WARNING JBIFW2501: Error in ServiceUnitManager for Engine sun-iep-engine: <component-task-result> <component-name>sun-iep-engine</component-name> <component-task-result-details> <task-result-details> <task-id>stop</task-id> <task-result>FAILED</task-result> <message-type>ERROR</message-type> <exception-info> <nesting-level>0</nesting-level> <msg-loc-info> <loc-token>IepSeSum_Stop_1</loc-token> <loc-message>Service Unit stop error: ORA-01453: SET TRANSACTION must be first statement of transaction </loc-message> </msg-loc-info> <stack-trace> java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy30.setTransactionIsolation(Unknown Source) at com.sun.jbi.engine.iep.core.runtime.util.Token.&lt;init&gt;(Token.java:60) at com.sun.jbi.engine.iep.core.runtime.DefaultIEPEngine.stop(DefaultIEPEngine.java:204) at com.sun.jbi.engine.iep.IEPSEServiceUnitManager.stop(IEPSEServiceUnitManager.java:470) at com.sun.jbi.framework.ServiceUnitOperation.process(ServiceUnitOperation.java:188) at com.sun.jbi.framework.Operation.run(Operation.java:104) at java.lang.Thread.run(Thread.java:745) </stack-trace> </exception-info> </task-result-details> </component-task-result-details> </component-task-result> 2014-11-14T16:38:49.327-0500 WARNING JBIFW2500: ServiceUnitManager stack trace follows: javax.jbi.management.DeploymentException: <component-task-result> <component-name>sun-iep-engine</component-name> <component-task-result-details> <task-result-details> <task-id>stop</task-id> <task-result>FAILED</task-result> <message-type>ERROR</message-type> <exception-info> <nesting-level>0</nesting-level> <msg-loc-info> <loc-token>IepSeSum_Stop_1</loc-token> <loc-message>Service Unit stop error: ORA-01453: SET TRANSACTION must be first statement of transaction </loc-message> </msg-loc-info> <stack-trace> java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy30.setTransactionIsolation(Unknown Source) at com.sun.jbi.engine.iep.core.runtime.util.Token.&lt;init&gt;(Token.java:60) at com.sun.jbi.engine.iep.core.runtime.DefaultIEPEngine.stop(DefaultIEPEngine.java:204) at com.sun.jbi.engine.iep.IEPSEServiceUnitManager.stop(IEPSEServiceUnitManager.java:470) at com.sun.jbi.framework.ServiceUnitOperation.process(ServiceUnitOperation.java:188) at com.sun.jbi.framework.Operation.run(Operation.java:104) at java.lang.Thread.run(Thread.java:745) </stack-trace> </exception-info> </task-result-details> </component-task-result-details> </component-task-result> at com.sun.jbi.engine.iep.IEPSEServiceUnitManager.stop(IEPSEServiceUnitManager.java:477) at com.sun.jbi.framework.ServiceUnitOperation.process(ServiceUnitOperation.java:188) at com.sun.jbi.framework.Operation.run(Operation.java:104) at java.lang.Thread.run(Thread.java:745) Caused by: java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662) at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy30.setTransactionIsolation(Unknown Source) at com.sun.jbi.engine.iep.core.runtime.util.Token.<init>(Token.java:60) at com.sun.jbi.engine.iep.core.runtime.DefaultIEPEngine.stop(DefaultIEPEngine.java:204) at com.sun.jbi.engine.iep.IEPSEServiceUnitManager.stop(IEPSEServiceUnitManager.java:470) ... 3 more 2014-11-14T16:38:49.406-0500 SEVERE POJOSE-7522: Exception while executing for ME null. java.lang.IllegalStateException: JBIMR0025: Unexpected illegal state change. Pattern (http://www.w3.org/2004/08/wsdl/in-out) TARGET-State (1) java.lang.IllegalStateException: JBIMR0025: Unexpected illegal state change. Pattern (http://www.w3.org/2004/08/wsdl/in-out) TARGET-State (1) at com.sun.jbi.messaging.MessageExchangeProxy.nextState(MessageExchangeProxy.java:716) at com.sun.jbi.messaging.MessageExchangeProxy.handleAccept(MessageExchangeProxy.java:776) at com.sun.jbi.messaging.DeliveryChannelImpl.acceptInternal(DeliveryChannelImpl.java:235) at com.sun.jbi.messaging.DeliveryChannelImpl.accept(DeliveryChannelImpl.java:202) at com.sun.jbi.common.qos.messaging.BaseMessagingChannel.accept(BaseMessagingChannel.java:249) at org.glassfish.openesb.pojose.jbi.thread.InboundProcessor.run(InboundProcessor.java:168) 2014-11-14T16:39:49.446-0500 WARNING MessagingException Id(105693257251934-35845-136352936043550068) : javax.jbi.messaging.MessagingException: JBIMR0022: Operation unavailable - DeliveryChannel has been closed. 2014-11-14T16:39:49.446-0500 WARNING MessagingException Id(105693257251934-35845-136352939035530040) : javax.jbi.messaging.MessagingException: JBIMR0022: Operation unavailable - DeliveryChannel has been closed. 2014-11-14T16:39:49.446-0500 WARNING MessagingException Id(105693257251934-35845-136352939006460210) : javax.jbi.messaging.MessagingException: JBIMR0022: Operation unavailable - DeliveryChannel has been closed.

    JIRA | 2 years ago | Ivan M
    java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction

    2 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.sql.SQLException

      ORA-01453: SET TRANSACTION must be first statement of transaction

      at oracle.jdbc.driver.DatabaseError.throwSqlException()
    2. Oracle jdbc
      OracleConnectionWrapper.setTransactionIsolation
      1. oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
      2. oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
      3. oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
      4. oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
      5. oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
      6. oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)
      7. oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
      8. oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1687)
      9. oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1653)
      10. oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1600)
      11. oracle.jdbc.OracleConnectionWrapper.setTransactionIsolation(OracleConnectionWrapper.java:162)
      11 frames
    3. Spring Framework
      DataSourceTransactionManager.doBegin
      1. org.springframework.jdbc.datasource.DataSourceUtils.prepareConnectionForTransaction(DataSourceUtils.java:173)
      2. org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:192)
      2 frames
    4. Spring Tx
      TransactionInterceptor.invoke
      1. org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:283)
      2. org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:226)
      3. org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:89)
      3 frames
    5. Spring AOP
      JdkDynamicAopProxy.invoke
      1. org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
      2. org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
      2 frames
    6. Unknown
      $Proxy29.qqDemonstrateSetTransactionBugStep2
      1. $Proxy29.qqDemonstrateSetTransactionBugStep2(Unknown Source)
      1 frame
    7. com.py.controller
      SETTRANSACTIONTestController.handleRequestInternal
      1. com.py.controller.SETTRANSACTIONTestController.handleRequestInternal(SETTRANSACTIONTestController.java:22)
      1 frame