[ 
https://issues.apache.org/jira/browse/ARIES-1279?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Sushko updated ARIES-1279:
----------------------------------
    Description: 
Tests show incorrect operation of the database.
Stack error bit different. But the result is the same.
If the error on the level of queries to the database, the test falls.
If the error in the logic of business process, the test passes.
{code}throw new Exception("send error");  // it's test work OK{code}

  was:
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}

       Priority: Critical  (was: Major)
        Summary: Transaction does not work on error SQLException  (was: Aries 
Transactions: Emergency closes JDBC connection before the transaction is rolled 
back)

> Transaction does not work on error SQLException
> -----------------------------------------------
>
>                 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
>            Priority: Critical
>         Attachments: transaction-itest.zip
>
>
> Tests show incorrect operation of the database.
> Stack error bit different. But the result is the same.
> If the error on the level of queries to the database, the test falls.
> If the error in the logic of business process, the test passes.
> {code}throw new Exception("send error");  // it's test work OK{code}



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

Reply via email to