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] [Updated] (ARIES-1279) Transaction does not work on error SQLException
Date Mon, 08 Dec 2014 22:51:13 GMT

     [ 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)

Mime
View raw message