-
15. Re: MDB endpoint in use
martin.capote Jul 9, 2013 5:22 PM (in response to igosneves)Hi Rodrigo, sorry for my english, I speak spanish.
I have the same problem, with JBoss 6.1.0 GA. Can you give me more details about your solution?
Thanks
-
16. Re: MDB endpoint in use
igosneves Jul 10, 2013 4:30 AM (in response to martin.capote)Hi Martin,
After more than three years, i must confess that i don't remember every details of the solution. I remember that i was using hibernate and this error occurred due to a concurrent access in the database when updating/inserting registries. Every message that the MDB was dealing with, had persistence in database. Do you have the same behaviour in your situation? Can you see in these exceptions in the logs?
If i remember, the solution was something related to Transaction Management. If you find the database action that is causing this problem, maybe you can add a "RequiresNew" TransactionAttribute to your method to solve the problem.
Hope this helps.
Rodrigo
-
17. Re: MDB endpoint in use
martin.capote Jul 11, 2013 10:44 AM (in response to igosneves)Thanks. Yes, Im using JPA and the MDB have concurrent access to the database. I tried to upgrade hornetq to the 2.2.14, with no luck.
-
18. Re: MDB endpoint in use
ataylor Jul 11, 2013 10:54 AM (in response to martin.capote)it wont be a hornetq issue per se, something else is either causing the onmessage to throw a weird exception or another participant in a tx is acting weirdly, most likely database stuff.
-
19. Re: MDB endpoint in use
igosneves Jul 11, 2013 11:08 AM (in response to martin.capote)Is it possible that some of your database accesses try to modify the same register? If yes, the problem can be in that point of writing/update in the database. In my case i detected the point of failure in the logs.
I also don't believe it is an hornetq issue.
-
20. Re: MDB endpoint in use
martin.capote Jul 12, 2013 1:19 PM (in response to igosneves)I have the database (Oracle 11g) in a virtual machine, and I can reproduce the problem with pause & continue at short intervals to simulate a erratic behavior:
{noformat}2013-07-11 20:01:58,777 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ########### TRANSACTION MANAGER ###########
2013-07-11 20:02:00,243 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Transaction Id 754571
2013-07-11 20:02:03,232 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Updating Transaction Status...
2013-07-11 20:02:04,180 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Finishing Transaction Manager
2013-07-11 20:02:04,180 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ################################################
2013-07-11 20:02:23,602 WARN [org.jboss.resource.connectionmanager.TxConnectionManager] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Connection error occured: org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener@1b3df7e1[state=NORMAL mc=org.jboss.resource.adapter.jdbc.xa.XAManagedConnection@15ce2c0 handles=0 lastUse=1373583720105 permit=true trackByTx=true mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$OnePool@4ca97517 context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool@9466053 xaResource=org.jboss.resource.adapter.jdbc.xa.XAManagedConnection@15ce2c0 txSync=null]: oracle.jdbc.xa.OracleXAException
2013-07-11 20:02:23,644 WARN [com.arjuna.ats.jta] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ARJUNA-16041 prepare on < formatId=131076, gtrid_length=29, bqual_length=28, tx_uid=0:ffffc0a84801:126a:51df359f:c76, node_name=1, branch_uid=0:ffffc0a84801:126a:51df359f:e25, eis_name=unknown eis name > (org.jboss.resource.adapter.jdbc.xa.XAManagedConnection@15ce2c0) failed with exception XAException.XAER_RMFAIL: oracle.jdbc.xa.OracleXAException
2013-07-11 20:02:23,678 WARN [com.arjuna.ats.arjuna] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ARJUNA-12073 BasicAction.End() - prepare phase of action-id 0:ffffc0a84801:126a:51df359f:c76 failed.
2013-07-11 20:02:23,678 WARN [com.arjuna.ats.arjuna] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ARJUNA-12075 Action Aborting
2013-07-11 20:02:23,720 WARN [com.arjuna.ats.jta] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ARJUNA-16045 attempted rollback of < formatId=131076, gtrid_length=29, bqual_length=28, tx_uid=0:ffffc0a84801:126a:51df359f:c76, node_name=1, branch_uid=0:ffffc0a84801:126a:51df359f:e25, eis_name=unknown eis name > (org.jboss.resource.adapter.jdbc.xa.XAManagedConnection@15ce2c0) failed with exception code XAException.XAER_RMFAIL: oracle.jdbc.xa.OracleXAException
2013-07-11 20:02:23,731 WARN [com.arjuna.ats.arjuna] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ARJUNA-12091 Top-level abort of action 0:ffffc0a84801:126a:51df359f:c76 received TwoPhaseOutcome.FINISH_ERROR from com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord
2013-07-11 20:02:23,733 ERROR [org.hornetq.ra.inflow.HornetQMessageHandler] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Failed to deliver message: java.lang.reflect.UndeclaredThrowableException
2013-07-11 20:02:23,734 ERROR [org.hornetq.core.client.impl.ClientConsumerImpl] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Failed to call onMessage(): java.lang.IllegalStateException: afterDelivery without a previous beforeDelivery for message endpoint TrxManagerMDB
2013-07-11 20:02:33,184 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ########### TRANSACTION MANAGER ###########
2013-07-11 20:02:33,295 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Transaction Id 754610
2013-07-11 20:01:58,777 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ########### TRANSACTION MANAGER ###########
2013-07-11 20:02:00,243 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Transaction Id 754571
2013-07-11 20:02:03,232 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Updating Transaction Status...
2013-07-11 20:02:04,180 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Finishing Transaction Manager
2013-07-11 20:02:04,180 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ################################################
2013-07-11 20:02:23,602 WARN [org.jboss.resource.connectionmanager.TxConnectionManager] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Connection error occured: org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener@1b3df7e1[state=NORMAL mc=org.jboss.resource.adapter.jdbc.xa.XAManagedConnection@15ce2c0 handles=0 lastUse=1373583720105 permit=true trackByTx=true mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$OnePool@4ca97517 context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool@9466053 xaResource=org.jboss.resource.adapter.jdbc.xa.XAManagedConnection@15ce2c0 txSync=null]: oracle.jdbc.xa.OracleXAException
2013-07-11 20:02:23,644 WARN [com.arjuna.ats.jta] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ARJUNA-16041 prepare on < formatId=131076, gtrid_length=29, bqual_length=28, tx_uid=0:ffffc0a84801:126a:51df359f:c76, node_name=1, branch_uid=0:ffffc0a84801:126a:51df359f:e25, eis_name=unknown eis name > (org.jboss.resource.adapter.jdbc.xa.XAManagedConnection@15ce2c0) failed with exception XAException.XAER_RMFAIL: oracle.jdbc.xa.OracleXAException
2013-07-11 20:02:23,678 WARN [com.arjuna.ats.arjuna] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ARJUNA-12073 BasicAction.End() - prepare phase of action-id 0:ffffc0a84801:126a:51df359f:c76 failed.
2013-07-11 20:02:23,678 WARN [com.arjuna.ats.arjuna] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ARJUNA-12075 Action Aborting
2013-07-11 20:02:23,720 WARN [com.arjuna.ats.jta] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ARJUNA-16045 attempted rollback of < formatId=131076, gtrid_length=29, bqual_length=28, tx_uid=0:ffffc0a84801:126a:51df359f:c76, node_name=1, branch_uid=0:ffffc0a84801:126a:51df359f:e25, eis_name=unknown eis name > (org.jboss.resource.adapter.jdbc.xa.XAManagedConnection@15ce2c0) failed with exception code XAException.XAER_RMFAIL: oracle.jdbc.xa.OracleXAException
2013-07-11 20:02:23,731 WARN [com.arjuna.ats.arjuna] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ARJUNA-12091 Top-level abort of action 0:ffffc0a84801:126a:51df359f:c76 received TwoPhaseOutcome.FINISH_ERROR from com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord
2013-07-11 20:02:23,733 ERROR [org.hornetq.ra.inflow.HornetQMessageHandler] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Failed to deliver message: java.lang.reflect.UndeclaredThrowableException
2013-07-11 20:02:23,734 ERROR [org.hornetq.core.client.impl.ClientConsumerImpl] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Failed to call onMessage(): java.lang.IllegalStateException: afterDelivery without a previous beforeDelivery for message endpoint TrxManagerMDB
2013-07-11 20:02:33,184 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ########### TRANSACTION MANAGER ###########
2013-07-11 20:02:33,295 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Transaction Id 754610
2013-07-11 20:02:34,022 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Updating Transaction Status...
2013-07-11 20:02:34,081 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Finishing Transaction Manager
2013-07-11 20:02:34,081 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ################################################
2013-07-11 20:03:11,314 ERROR [org.hornetq.ra.inflow.HornetQMessageHandler] (Thread-3 (group:HornetQ-client-global-threads-1508716274)) [] Failed to deliver message: java.lang.IllegalStateException: This message endpoint + TrxManagerMDB is already in use by another thread Thread[Thread-6 (group:HornetQ-client-global-threads-1508716274),5,HornetQ-client-global-threads-1508716274]
2013-07-11 20:03:11,423 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] ########### TRANSACTION MANAGER ###########
2013-07-11 20:03:11,538 INFO [com.zzzzzzzzz.common.transactionManager.TrxManagerBean] (Thread-6 (group:HornetQ-client-global-threads-1508716274)) [] Transaction Id 754633
2013-07-11 20:03:12,908 ERROR [org.hornetq.ra.inflow.HornetQMessageHandler] (Thread-16 (group:HornetQ-client-global-threads-1508716274)) [] Failed to deliver message: java.lang.IllegalStateException: This message endpoint + TrxManagerMDB is already in use by another thread Thread[Thread-6 (group:HornetQ-client-global-threads-1508716274),5,HornetQ-client-global-threads-1508716274]
{noformat}
The MDB "TrxManagerMDB" is configured with 15 instances, and after these error, one of every 15 messages throw the error "This message endpoint + TrxManagerMDB is already in use by another thread" and is not processed.
Im using JBoss 6.1.0 GA, the Oracle Driver is ojdbc6.jar (Implementation-Version: 11.2.0.2.0).
This is my datasource:
{code:xml}<datasources>
<xa-datasource>
<jndi-name>MYDATASOURCE</jndi-name>
<isSameRM-override-value>false</isSameRM-override-value>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<xa-datasource-property name="URL">jdbc:oracle:thin:@x.x.x.x:ORCL</xa-datasource-property>
<xa-datasource-property name="User">user</xa-datasource-property>
<xa-datasource-property name="Password">pass</xa-datasource-property>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<no-tx-separate-pools/>
<track-connection-by-tx/>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
<min-pool-size>1</min-pool-size>
<max-pool-size>25</max-pool-size>
<blocking-timeout-millis>15000</blocking-timeout-millis>
<idle-timeout-minutes>15</idle-timeout-minutes>
<metadata>
<type-mapping>Oracle10g</type-mapping>
</metadata>
<use-java-context>false</use-java-context>
</xa-datasource>
<mbean code="org.jboss.resource.adapter.jdbc.vendor.OracleXAExceptionFormatter"
name="jboss.jca:service=OracleXAExceptionFormatter">
<depends optional-attribute-name="TransactionManagerService">jboss:service=TransactionManager</depends>
</mbean>
</datasources>{code:xml}
Thanks