aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Sushko (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARIES-1279) Aries Transactions: Emergency closes JDBC connection before the transaction is rolled back
Date Mon, 08 Dec 2014 13:01:12 GMT

    [ https://issues.apache.org/jira/browse/ARIES-1279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14237843#comment-14237843
] 

Aleksey Sushko commented on ARIES-1279:
---------------------------------------

Error occurs SQLException.
Fires method of connectionErrorOccurred GeronimoConnectionEventListener

89: connectionErrorOccurred called with

Signal is sent to the destroy connection

95: stack.returnConnection(ci, ConnectionReturnAction.DESTROY);

There is closing the current connection.

TransactionCachingInterceptor
117: destroying connection 


Срабатывает обработчик TransactionEnlistingInterceptor.
TransactionImpl перекладывает объект XAResource из списка activeXaResources
в suspendedXaResources.
Сведения о соединении остались в списке resourceManagers.

Triggered the handler TransactionEnlistingInterceptor.
TransactionImpl shifts XAResource object from activeXaResources to suspendedXaResources.
Information about the connection remains in resourceManagers.

Further, in the case enters the handler AbstractSinglePoolConnectionInterceptor.

106: returning connection null for MCI ManagedConnectionInfo ...
161: mc.destroy();	// Removing ManagedConnectionInfo ...
     // call ManagedJDBCConnection -> AbstractManagedConnection.destroy()
183: Discarding connection in pool

!!! Connection closed !!!

The transaction does not know that the connection is closed.

It comes to the general transaction.rollback().
TransactionImpl cycle runs through a list of objects of resourceManagers.
Each object sends a rollback.


> Aries Transactions: Emergency closes JDBC connection before the transaction is rolled
back
> ------------------------------------------------------------------------------------------
>
>                 Key: ARIES-1279
>                 URL: https://issues.apache.org/jira/browse/ARIES-1279
>             Project: Aries
>          Issue Type: Bug
>          Components: Transaction
>         Environment: org.apache.aries.transaction.jdbc:2.1.0
> org.apache.aries.transaction.manager:1.1.0
> org.apache.geronimo.components.geronimo-connector:3.1.1
>            Reporter: Aleksey Sushko
>
> ManagedJDBCConnection emergency closes JDBC connection before the transaction is rolled
back.
> Create a service of the JDBC DataSource.
> {code}
> <bean id="dataSourceOragnizer" class="oracle.jdbc.pool.OracleDataSource">
> <cm:managed-properties
>   persistent-id="oracle_oragnizer"
>   update-strategy="component-managed"
>   update-method="update"/>
> </bean>
> <service ref="dataSourceOragnizer" interface="javax.sql.DataSource">
> <service-properties>
>   <entry key="datasource.name" value="db-organizer"/>
>   <entry key="aries.xa.name" value="db-organizer"/>
>   <entry key="aries.xa.username" value="test"/>
>   <entry key="aries.xa.password" value="test"/>
>   <entry key="aries.xa.partitionStrategy" value="by-connector-properties"/>
> </service-properties>
> </service>
> {code}
> In SQL query has a bug.
> {code}
> 2014-12-08 01:04:20,214 | TRACE | l Console Thread | TransactionCachingInterceptor  
 | nd.TransactionCachingInterceptor   97 | 135 - org.apache.geronimo.components.geronimo-connector
- 3.1.1 | supplying connection from tx cache  for tx caching interceptor org.apache.geronimo.connector.outbound.TransactionCachingInterceptor@c4b525e
handle: nullManagedConnectionInfo: org.apache.geronimo.connector.outbound.ManagedConnectionInfo@5fc3d460.
mc: org.tranql.connector.jdbc.ManagedJDBCConnection@31ac1bbe]
> 2014-12-08 01:04:20,220 | WARN  | l Console Thread | GeronimoConnectionEventListener
 | .GeronimoConnectionEventListener   89 | 135 - org.apache.geronimo.components.geronimo-connector
- 3.1.1 | connectionErrorOccurred called with null
> java.sql.SQLException: ORA-00904: "DOC_NUMBER": invalid identifier
> ...
> {code}
> Further, there is an emergency closing the connection
> {code}
> 2014-12-08 01:04:20,227 | TRACE | l Console Thread | TransactionCachingInterceptor  
 | nd.TransactionCachingInterceptor  117 | 135 - org.apache.geronimo.components.geronimo-connector
- 3.1.1 | destroying connection for tx caching interceptor org.apache.geronimo.connector.outbound.TransactionCachingInterceptor@c4b525e
handle: nullManagedConnectionInfo: org.apache.geronimo.connector.outbound.ManagedConnectionInfo@5fc3d460.
mc: org.tranql.connector.jdbc.ManagedJDBCConnection@31ac1bbe]
> 2014-12-08 01:04:20,227 | TRACE | l Console Thread | TransactionEnlistingInterceptor
 | .TransactionEnlistingInterceptor   96 | 135 - org.apache.geronimo.components.geronimo-connector
- 3.1.1 | Delisting connection handle: nullManagedConnectionInfo: org.apache.geronimo.connector.outbound.ManagedConnectionInfo@5fc3d460.
mc: org.tranql.connector.jdbc.ManagedJDBCConnection@31ac1bbe] with XAResource org.apache.geronimo.connector.outbound.LocalXAResource@58abcff3
in transaction: org.apache.geronimo.transaction.manager.TransactionImpl@76d51962
> java.lang.Exception: stack trace
> 	at org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.returnConnection(TransactionEnlistingInterceptor.java:96)[135:org.apache.geronimo.components.geronimo-connector:3.1.1]
> 	at org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.returnConnection(TransactionCachingInterceptor.java:119)[135:org.apache.geronimo.components.geronimo-connector:3.1.1]
> 	at org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.returnConnection(ConnectionHandleInterceptor.java:71)[135:org.apache.geronimo.components.geronimo-connector:3.1.1]
> 	at org.apache.geronimo.connector.outbound.TCCLInterceptor.returnConnection(TCCLInterceptor.java:50)[135:org.apache.geronimo.components.geronimo-connector:3.1.1]
> 	at org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.returnConnection(ConnectionTrackingInterceptor.java:91)[135:org.apache.geronimo.components.geronimo-connector:3.1.1]
> 	at org.apache.geronimo.connector.outbound.GeronimoConnectionEventListener.connectionErrorOccurred(GeronimoConnectionEventListener.java:95)[135:org.apache.geronimo.components.geronimo-connector:3.1.1]
> 	at org.tranql.connector.AbstractManagedConnection.unfilteredConnectionError(AbstractManagedConnection.java:126)[133:org.apache.aries.transaction.jdbc:2.1.0]
> 	at org.tranql.connector.AbstractManagedConnection.connectionError(AbstractManagedConnection.java:115)[133:org.apache.aries.transaction.jdbc:2.1.0]
> 	at org.tranql.connector.jdbc.ConnectionHandle.connectionError(ConnectionHandle.java:112)[133:org.apache.aries.transaction.jdbc:2.1.0]
> 	at org.tranql.connector.jdbc.PreparedStatementHandle.execute(PreparedStatementHandle.java:179)[133:org.apache.aries.transaction.jdbc:2.1.0]
> 	...
> 2014-12-08 01:04:20,230 | TRACE | l Console Thread | tSinglePoolConnectionInterceptor
| tSinglePoolConnectionInterceptor  106 | 135 - org.apache.geronimo.components.geronimo-connector
- 3.1.1 | returning connection null for MCI ManagedConnectionInfo: org.apache.geronimo.connector.outbound.ManagedConnectionInfo@5fc3d460.
mc: org.tranql.connector.jdbc.ManagedJDBCConnection@31ac1bbe] and MC org.tranql.connector.jdbc.ManagedJDBCConnection@31ac1bbe
to pool org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor@1a51706c
> 2014-12-08 01:04:20,230 | INFO  | l Console Thread | SinglePoolConnectionInterceptor
 | .SinglePoolConnectionInterceptor  146 | 135 - org.apache.geronimo.components.geronimo-connector
- 3.1.1 | Removing ManagedConnectionInfo: org.apache.geronimo.connector.outbound.ManagedConnectionInfo@5fc3d460.
mc: org.tranql.connector.jdbc.ManagedJDBCConnection@31ac1bbe] from pool org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor@1a51706c
> 2014-12-08 01:04:20,231 | TRACE | l Console Thread | tSinglePoolConnectionInterceptor
| tSinglePoolConnectionInterceptor  183 | 135 - org.apache.geronimo.components.geronimo-connector
- 3.1.1 | Discarding connection in pool org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor@1a51706c
handle: nullManagedConnectionInfo: org.apache.geronimo.connector.outbound.ManagedConnectionInfo@5fc3d460.
mc: org.tranql.connector.jdbc.ManagedJDBCConnection@31ac1bbe]
> {code}
> Further, there is rolled back. The system tries again to close the connection.
> {code}
> 2014-12-08 01:04:20,246 | ERROR | l Console Thread | RollbackTask                   
 | transaction.manager.RollbackTask   68 | 69 - org.apache.aries.transaction.manager - 1.1.0
| Unexpected exception committing org.apache.geronimo.connector.outbound.LocalXAResource@58abcff3;
continuing to commit other RMs
> javax.transaction.xa.XAException
> 	at org.apache.geronimo.connector.outbound.LocalXAResource.rollback(LocalXAResource.java:88)[135:org.apache.geronimo.components.geronimo-connector:3.1.1]
> 	at org.apache.geronimo.transaction.manager.RollbackTask.run(RollbackTask.java:64)[69:org.apache.aries.transaction.manager:1.1.0]
> 	at org.apache.geronimo.transaction.manager.TransactionImpl.rollbackResources(TransactionImpl.java:599)[69:org.apache.aries.transaction.manager:1.1.0]
> 	at org.apache.geronimo.transaction.manager.TransactionImpl.rollback(TransactionImpl.java:498)[69:org.apache.aries.transaction.manager:1.1.0]
> 	at org.apache.geronimo.transaction.manager.TransactionManagerImpl.rollback(TransactionManagerImpl.java:265)[69:org.apache.aries.transaction.manager:1.1.0]
> 	at myapp.impl.commands.ImportDoc.doExecute(ImportDoc.java:165)[141:documents-reload:2.2.0.SNAPSHOT]
> 	at org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:38)[16:org.apache.karaf.shell.console:2.3.8]
> 	at org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35)[16:org.apache.karaf.shell.console:2.3.8]
> 	at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)[16:org.apache.karaf.shell.console:2.3.8]
> 	at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:474)[16:org.apache.karaf.shell.console:2.3.8]
> 	at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:400)[16:org.apache.karaf.shell.console:2.3.8]
> 	at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[16:org.apache.karaf.shell.console:2.3.8]
> 	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)[16:org.apache.karaf.shell.console:2.3.8]
> 	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)[16:org.apache.karaf.shell.console:2.3.8]
> 	at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)[16:org.apache.karaf.shell.console:2.3.8]
> 	at org.apache.karaf.shell.console.jline.Console.run(Console.java:184)[16:org.apache.karaf.shell.console:2.3.8]
> 	at java.lang.Thread.run(Thread.java:745)[:1.7.0_72]
> Caused by: javax.resource.spi.LocalTransactionException: Unable to rollback
> 	at org.tranql.connector.jdbc.ManagedJDBCConnection.localTransactionRollback(ManagedJDBCConnection.java:113)[133:org.apache.aries.transaction.jdbc:2.1.0]
> 	at org.tranql.connector.AbstractManagedConnection$LocalTransactionImpl.rollback(AbstractManagedConnection.java:203)[133:org.apache.aries.transaction.jdbc:2.1.0]
> 	at org.apache.geronimo.connector.outbound.LocalXAResource.rollback(LocalXAResource.java:86)[135:org.apache.geronimo.components.geronimo-connector:3.1.1]
> 	... 16 more
> Caused by: java.sql.SQLException: Closed Connection
> 	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)[132:wrap_mvn_com.oracle_ojdbc14_10.2.0.5:0]
> 	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:147)[132:wrap_mvn_com.oracle_ojdbc14_10.2.0.5:0]
> 	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:209)[132:wrap_mvn_com.oracle_ojdbc14_10.2.0.5:0]
> 	at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1195)[132:wrap_mvn_com.oracle_ojdbc14_10.2.0.5:0]
> 	at oracle.jdbc.OracleConnectionWrapper.rollback(OracleConnectionWrapper.java:122)[132:wrap_mvn_com.oracle_ojdbc14_10.2.0.5:0]
> 	at org.tranql.connector.jdbc.ManagedJDBCConnection.localTransactionRollback(ManagedJDBCConnection.java:111)[133:org.apache.aries.transaction.jdbc:2.1.0]
> 	... 18 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message