[jboss-jira] [JBoss JIRA] (WFLY-5536) Recovery manager is not able to recover MDB and shows warnings on each run.
Jeff Mesnil (JIRA)
issues at jboss.org
Fri Oct 23 10:37:01 EDT 2015
[ https://issues.jboss.org/browse/WFLY-5536?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13121530#comment-13121530 ]
Jeff Mesnil edited comment on WFLY-5536 at 10/23/15 10:36 AM:
--------------------------------------------------------------
I debug this test case and there looks to be something suspicious. If I print the xaResourceProperties properties at https://github.com/apache/activemq-artemis/blob/master/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/inflow/ActiveMQMessageHandler.java#L181, when the MDB is deployed, it prints:
{noformat}
15:55:00,890 INFO [org.jboss.as.ejb3] (MSC service thread 1-1) WFLYEJB0042: Started message driven bean 'JMSCrashMessageDrivenBean' with 'activemq-ra.rar' resource adapter
15:55:01,353 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=null}
15:55:01,367 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,372 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,376 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,381 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,386 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,391 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,397 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,402 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,406 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,410 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,415 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,419 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,423 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,423 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0010: Deployed "crashrecovery-jms-with-mdb.jar" (runtime-name : "crashrecovery-jms-with-mdb.jar")
15:55:01,426 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
{noformat}
The 1st message handle in the pool as a "null" ACTIVEMQ_NODE_ID while all others have "94d9f5e8-798d-11e5-a743-11fedbafb53e".
I think the issue is not related to this null value.
The message handler's with the null nodeID is the one receiving the message. So its XAResource will have the null value. It looks like that during recovery Artemis will not use this xaresource has it does not match its nodeID...
[~ataylor] does that make sense? I don't see any reason to have this null value for the first message handler. I suppose there is a race condition between setting up the message handler and setting the liveNodeId on the handler's clientSessionFactory...
was (Author: jmesnil):
I debug this test case and there looks to be something suspicious. If I print the xaResourceProperties properties at https://github.com/apache/activemq-artemis/blob/master/artemis-ra/src/main/java/org/apache/activemq/artemis/ra/inflow/ActiveMQMessageHandler.java#L181, when the MDB is deployed, it prints:
{noformat}
15:55:00,890 INFO [org.jboss.as.ejb3] (MSC service thread 1-1) WFLYEJB0042: Started message driven bean 'JMSCrashMessageDrivenBean' with 'activemq-ra.rar' resource adapter
15:55:01,353 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=null}
15:55:01,367 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,372 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,376 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,381 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,386 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,391 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,397 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,402 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,406 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,410 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,415 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,419 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,423 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
15:55:01,423 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0010: Deployed "crashrecovery-jms-with-mdb.jar" (runtime-name : "crashrecovery-jms-with-mdb.jar")
15:55:01,426 INFO [stdout] (default-threads - 1) xaResourceProperties = {ACTIVEMQ_PRODUCT_VERSION=1.1.0.jboss-SNAPSHOT, ACTIVEMQ_PRODUCT_NAME=ActiveMQ Artemis, ACTIVEMQ_JNDI_ID=java:/JmsXA, ACTIVEMQ_NODE_ID=94d9f5e8-798d-11e5-a743-11fedbafb53e}
{noformat}
The 1st message handle in the pool as a "null" ACTIVEMQ_NODE_ID while all others have "94d9f5e8-798d-11e5-a743-11fedbafb53e".
I am wondering whether the issue is not related to this null value.
If this message handler's XAResource is used by the TM, could it be that Artemis will not be able to use it?
[~ataylor] does that make sense? I don't see any reason to have this null value for the first message handler. I suppose there is a race condition between setting up the message handler and setting the liveNodeId on the handler's clientSessionFactory...
> Recovery manager is not able to recover MDB and shows warnings on each run.
> ---------------------------------------------------------------------------
>
> Key: WFLY-5536
> URL: https://issues.jboss.org/browse/WFLY-5536
> Project: WildFly
> Issue Type: Bug
> Components: JMS
> Affects Versions: 10.0.0.CR2
> Reporter: Hayk Hovsepyan
> Assignee: Jeff Mesnil
> Priority: Blocker
> Attachments: MDB_JMS_XA.log
>
>
> Recovery manager is not able to recover MDB and shows warnings.
> This causes to see the same warning log in server each time recovery is run.
> This happens when server is crashed before transaction state is saved.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list