activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-1983) Async error occurred - Slave broker out of sync with master
Date Fri, 24 Oct 2008 15:52:52 GMT

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

Gary Tully commented on AMQ-1983:
---------------------------------

I think the following patch will fix your issue. There is not much in the line of XA tests
in core that can help me verify at the moment. If you get a chance, can you build trunk with
this patch and validate.
{code}
Index: activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java
===================================================================
--- activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java	(revision
707659)
+++ activemq-core/src/main/java/org/apache/activemq/broker/ft/MasterBroker.java	(working copy)
@@ -253,7 +253,7 @@
      */
     public int prepareTransaction(ConnectionContext context, TransactionId xid) throws Exception
{
         TransactionInfo info = new TransactionInfo(context.getConnectionId(), xid, TransactionInfo.PREPARE);
-        sendAsyncToSlave(info);
+        sendSyncToSlave(info);
         int result = super.prepareTransaction(context, xid);
         return result;
     }
{code}

> Async error occurred - Slave broker out of sync with master
> -----------------------------------------------------------
>
>                 Key: AMQ-1983
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1983
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.2.0
>         Environment: java version "1.6.0_07"
> Client is a JBoss 4.2.3.GA cluster using the ActiveMQ resource adapter (from RC2)
> ActiveMQ 5.3.0  rev 706043 in pure master/slave setup
>            Reporter: Hans Bausewein
>         Attachments: activemq-master.log.gz, activemq-slave.log.gz, activemqjee-0.0.8-src.tar.gz
>
>
> I have tried to reduce the real-life problem to something smaller. See activemqjee-0.0.8.tar.gz
> It's a MDB that forwards a message to another queue. 
> What I did:
> - send some messages to queue.A (I did 10 at a time, using the webconsole setting Persistent
Delivery)
> - the MDB sends each message to queue.B
> - if a reply queue was set in the message, the MDB sends a reply
> On queue.B is an MDB that just received and logs the message.
> Logged on the master:
> {code}
> 2008-10-19 18:39:54,114 [127.0.0.1:43972] DEBUG AMQMessageStore                - Journalled
transacted message add for:
>    ID:selten.cluster-40744-1224434310420-0:2:4:1:1, at: offset = 90045, file = 1, size
= 429, type = 1
> ......
> 2008-10-19 18:39:54,278 [127.0.0.1:43972] DEBUG AMQMessageStore                - Transacted
message add commit for:
>    ID:selten.cluster-40744-1224434310420-0:2:4:1:1, at: offset = 90045, file = 1, size
= 429, type = 1
> ......
> 2008-10-19 18:39:54,305 [127.0.0.1:43962] ERROR MasterBroker                   - Slave
Failed
> javax.jms.JMSException: Unmatched acknowledege: MessageAck {commandId = 1031, responseRequired
= true, ackType = 2, 
>   consumerId = ID:selten.cluster-40744-1224434310420-0:0:-1:2, firstMessageId = 
> ID:selten.cluster-40744-1224434310420-0:2:4:1:1, lastMessageId = ID:selten.cluster-40744-1224434310420-0:2:4:1:1,

>   destination = queue://queue.B, 
> transactionId = XID:131075:312d2d32613062356562303a613535653a34386662363236643a313135:2d32613062356562303a613535653a34386662363236643a313136,
>  messageCount = 1}; Could not find Message-ID ID:selten.cluster-40744-1224434310420-0:2:4:1:1
in dispatched-list (start of ack)
>         at org.apache.activemq.broker.region.PrefetchSubscription.assertAckMatchesDispatched(PrefetchSubscription.java:438)
>         at org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:188)
>         at org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:373)
>         at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:462)
> {code}
> Logged on the slave:
> {code}
> 2008-10-19 18:39:54,112 [.cluster#1] DEBUG AMQMessageStore                - Journalled
transacted message add for: ID:selten.cluster-40744-1224434310420-0:2:4:1:1, at: offset =
90045, file = 1, size = 429, type = 1
> ......
> 2008-10-19 18:39:54,241 [.cluster#1] DEBUG AMQMessageStore                - Transacted
message add commit for: ID:selten.cluster-40744-1224434310420-0:2:4:1:1, at: offset = 90045,
file = 1, size = 429, type = 1
> ......
> 2008-10-19 18:39:54,288 [.cluster#1] ERROR Service                        - Async error
occurred: javax.jms.JMSException: Slave broker out of sync with master: 
>   Dispatched message (ID:selten.cluster-40744-1224434310420-0:2:4:1:1) was not in the
pending list for queue.B
>   javax.jms.JMSException: Slave broker out of sync with master: Dispatched message 
> (ID:selten.cluster-40744-1224434310420-0:2:4:1:1) was not in the pending list for queue.B
>         at org.apache.activemq.broker.region.PrefetchSubscription.processMessageDispatchNotification(PrefetchSubscription.java:175)
>         at org.apache.activemq.broker.region.AbstractRegion.processDispatchNotification(AbstractRegion.java:414)
>         at org.apache.activemq.broker.region.RegionBroker.processDispatchNotification(RegionBroker.java:585)
> {code}
> I could not consistently reproduce it with a single JBoss server running. I've sent a
few 100 messages without any problem.
> I've tested both 5.2.0-RC2 and 5.3.0-SNAPSHOT (rev 706043).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message