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

ASF subversion and git services commented on AMQ-6707:
------------------------------------------------------

Commit ea70e827c049cee9d455303a8cdb31a64b23763d in activemq's branch 
refs/heads/master from [~gtully]
[ https://git-wip-us.apache.org/repos/asf?p=activemq.git;h=ea70e82 ]

AMQ-6707 - JDBC XA recovery and completion.

ensure pending transactions are visible for recovery without restart
sync store and cursor size during and after completion
ensure pending messages are not visible to browsers
retain transaction state on jdbc error
a bunch of new tests around xa completion


> JDBC XA: Could not remove prepared transaction state from message
> -----------------------------------------------------------------
>
>                 Key: AMQ-6707
>                 URL: https://issues.apache.org/jira/browse/AMQ-6707
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JDBC, XA
>    Affects Versions: 5.14.5
>            Reporter: Jakub
>            Assignee: Gary Tully
>            Priority: Critical
>
> When ActiveMQ 5.14.5 is configured with jdbc persistence storage (postgres) 
> from time to time below error occurs:
> {code}
> 2017-06-15 01:41:37,418 | ERROR | enerContainer-21 | CommitTask               
>         | 67 - org.apache.aries.transaction.manager - 1.3.1 | Unexpected 
> exception committing 
> org.apache.geronimo.transaction.manager.WrapperNamedXAResource@34ac9d62; 
> continuing to commit other RMs
> javax.transaction.xa.XAException: STORE COMMIT FAILED: Transaction rolled 
> back xaErrorCode:104
>       at 
> org.apache.activemq.TransactionContext.toXAException(TransactionContext.java:793)
>       at 
> org.apache.activemq.TransactionContext.commit(TransactionContext.java:622)
>       at 
> org.apache.geronimo.transaction.manager.WrapperNamedXAResource.commit(WrapperNamedXAResource.java:54)
>       at 
> org.apache.geronimo.transaction.manager.CommitTask.run(CommitTask.java:64)
>       at 
> org.apache.geronimo.transaction.manager.TransactionImpl.commitResources(TransactionImpl.java:688)
>       at 
> org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:327)
>       at 
> org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252)
>       at 
> org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1020)
>       at 
> org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
>       at 
> org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
>       at 
> org.apache.aries.transaction.internal.AriesPlatformTransactionManager.commit(AriesPlatformTransactionManager.java:75)
>       at sun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_131]
>       at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_131]
>       at 
> com.ectsp.spring.osgi.PlatformTransactionManagerFactoryBean$ProxyTxManagerHandler.invoke(PlatformTransactionManagerFactoryBean.java:115)[169:ectsp-spring-osgi:1.0.0.SNAPSHOT]
>       at com.sun.proxy.$Proxy68.commit(Unknown 
> Source)[100:org.apache.servicemix.bundles.spring-tx:4.2.8.RELEASE_1]
>       at 
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:245)[97:org.apache.servicemix.bundles.spring-jms:4.2.8.RELEASE_1]
>       at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1164)[97:org.apache.servicemix.bundles.spring-jms:4.2.8.RELEASE_1]
>       at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1156)[97:org.apache.servicemix.bundles.spring-jms:4.2.8.RELEASE_1]
>       at 
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1053)[97:org.apache.servicemix.bundles.spring-jms:4.2.8.RELEASE_1]
>       at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
> Caused by: javax.transaction.xa.XAException: STORE COMMIT FAILED: Transaction 
> rolled back xaErrorCode:104
>       at 
> org.apache.activemq.transaction.Transaction.newXAException(Transaction.java:212)
>       at 
> org.apache.activemq.transaction.XATransaction.storeCommit(XATransaction.java:93)
>       at 
> org.apache.activemq.transaction.XATransaction.commit(XATransaction.java:76)
>       at 
> org.apache.activemq.broker.TransactionBroker.commitTransaction(TransactionBroker.java:252)
>       at 
> org.apache.activemq.broker.MutableBrokerFilter.commitTransaction(MutableBrokerFilter.java:118)
>       at 
> org.apache.activemq.broker.MutableBrokerFilter.commitTransaction(MutableBrokerFilter.java:118)
>       at 
> org.apache.activemq.broker.TransportConnection.processCommitTransactionTwoPhase(TransportConnection.java:547)
>       at 
> org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:102)
>       at 
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:336)
>       at 
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:200)
>       at 
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>       at 
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:125)
>       at 
> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:301)
>       at 
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:233)[47:org.apache.activemq.activemq-osgi:5.14.5]
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:215)[47:org.apache.activemq.activemq-osgi:5.14.5]
>       at java.lang.Thread.run(Thread.java:745)[:1.8.0_131]
> Caused by: java.io.IOException: Could not remove prepared transaction state 
> from message add for sequenceId: 4025171
>       at 
> org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doCommitAddOp(DefaultJDBCAdapter.java:1031)
>       at 
> org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.commitAdd(JDBCPersistenceAdapter.java:780)
>       at 
> org.apache.activemq.store.jdbc.JdbcMemoryTransactionStore$CommitAddOutcome.run(JdbcMemoryTransactionStore.java:146)
>       at 
> org.apache.activemq.store.memory.MemoryTransactionStore$Tx.commit(MemoryTransactionStore.java:101)
>       at 
> org.apache.activemq.store.memory.MemoryTransactionStore.commit(MemoryTransactionStore.java:270)
>       at 
> org.apache.activemq.transaction.XATransaction.storeCommit(XATransaction.java:86)
>       ... 15 more
> {code}
> It seams that it the same issue as in 
> https://issues.apache.org/jira/browse/AMQ-5567.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to