Return-Path: Delivered-To: apmail-activemq-users-archive@www.apache.org Received: (qmail 32909 invoked from network); 6 Jul 2010 09:54:26 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 6 Jul 2010 09:54:26 -0000 Received: (qmail 73506 invoked by uid 500); 6 Jul 2010 09:54:26 -0000 Delivered-To: apmail-activemq-users-archive@activemq.apache.org Received: (qmail 73136 invoked by uid 500); 6 Jul 2010 09:54:23 -0000 Mailing-List: contact users-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@activemq.apache.org Delivered-To: mailing list users@activemq.apache.org Received: (qmail 73128 invoked by uid 99); 6 Jul 2010 09:54:21 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Jul 2010 09:54:21 +0000 X-ASF-Spam-Status: No, hits=1.3 required=10.0 tests=FS_REPLICA,RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of Andreas.Weber@attensity.com designates 84.17.190.222 as permitted sender) Received: from [84.17.190.222] (HELO pmx12.bertelsmann.de) (84.17.190.222) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Jul 2010 09:54:13 +0000 Received: from trustmail_pmx12.bertelsmann.de (localhost [127.0.0.1]) by pmx12.bertelsmann.de (Postfix) with SMTP id 6C3A0263EC for ; Tue, 6 Jul 2010 11:53:22 +0200 (CEST) Received: from debmu470.server.arvato-systems.de ([84.17.190.205]) by trustmail_pmx12.bertelsmann.de (Totemo SMTP Server) with SMTP ID 889 for ; Tue, 6 Jul 2010 11:53:22 +0200 (CEST) Received: from mmx2.bertelsmann.de (unknown [145.228.237.31]) by pmx5.bertelsmann.de (Postfix) with ESMTP id 671FA34DEF for ; Tue, 6 Jul 2010 11:53:22 +0200 (CEST) Received: from gtlbmlexs0006.bagmail.net ([145.228.237.20]) by mmx2.bertelsmann.de with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Jul 2010 11:53:22 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable x-cr-puzzleid: {00780DF6-93B2-465B-9FB7-632D5C11ECE9} x-cr-hashedpuzzle: AuAM BTo1 Cizg Crp/ CxZM DItv DhA6 DpQx E37r FuLu F9rL HAg8 HMZQ HoZR IAkq IR7g;1;dQBzAGUAcgBzAEAAYQBjAHQAaQB2AGUAbQBxAC4AYQBwAGEAYwBoAGUALgBvAHIAZwA=;Sosha1_v1;7;{00780DF6-93B2-465B-9FB7-632D5C11ECE9};YQBuAGQAcgBlAGEAcwAuAHcAZQBiAGUAcgBAAGEAdAB0AGUAbgBzAGkAdAB5AC4AYwBvAG0A;Tue, 06 Jul 2010 09:53:18 GMT;QQBXADoAIABQAHUAcgBlACAATQBhAHMAdABlAHIALwBTAGwAYQB2AGUAIABCAHUAZwA/ACAARQB4AHAAaQByAGUAZAAgAG0AZQBzAHMAYQBnAGUAcwAgAG4AbwB0ACAAcgBlAHAAbABpAGMAYQB0AGUAZAAgAHQAbwAgAFMAbABhAHYAZQAgAC0AIAB1AHAAZABhAHQAZQA= Content-class: urn:content-classes:message Subject: AW: Pure Master/Slave Bug? Expired messages not replicated to Slave - update Date: Tue, 6 Jul 2010 11:53:17 +0200 Message-ID: <653C8E101491144F9B644FFA6652F5E50441A033@gtlbmlexs0006.bagmail.net> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Pure Master/Slave Bug? Expired messages not replicated to Slave - update Thread-Index: Acsc6LAJ9XseV/S4SXaWxYOtOp9xNwAA9Mvg References: <653C8E101491144F9B644FFA6652F5E504399DFF@gtlbmlexs0006.bagmail.net> From: To: X-OriginalArrivalTime: 06 Jul 2010 09:53:22.0096 (UTC) FILETIME=[11C43B00:01CB1CF1] X-Virus-Checked: Checked by ClamAV on apache.org Hi Gary, thanks for your reply. I opened a JIRA issue: = https://issues.apache.org/activemq/browse/AMQ-2810 It's important for us, because in our application design we use the = (individual) DLQs like "normal" data queues, which are processed by = consumers, and amongst others are filled by expired messages from other = queues. And if these are not replicated to the Slave, then we can't = handle a Master node failure correctly. Concerning the limitations you mentioned below, well, I don't really see = a direct relation to the current issue. And btw, these are open issues, = too - right? So I would hope to have them also fixed in next ActiveMQ = release. BTW, is it correct what I wrote about a Slave having its own handling = (Timer) of expired messages? Andreas > -----Urspr=FCngliche Nachricht----- > Von: Gary Tully [mailto:gary.tully@gmail.com] > Gesendet: Dienstag, 6. Juli 2010 10:52 > An: users@activemq.apache.org > Betreff: Re: Pure Master/Slave Bug? Expired messages not replicated to = Slave - update >=20 > This looks like a bug, can u open a jira issue to track this. I think > that audit on TransactionBroker has caused a problem before, not sure > what duplicates it is intended to suppress. >=20 > Out of interest, what is your use case for pure master slave? > Due to the limitations of restarting master/slave pairs (both need to > be restarted in order) and the fact that only the master can fail, it > tends not be get that much use in production and as a result not that > much attention w.r.t bug fixes. Having said that, what is there should > work as expected with its limitations. >=20 > You may want to consider using a shared file system master/slave = setup. >=20 > On 5 July 2010 14:59, wrote: > > > > Update: Same problem with ActiveMQ 5.3.0, current 5.3.3- and current = 5.4-SNAPSHOT. > > > > Any ideas? > > > > =A0Andreas > > > > -----Urspr=FCngliche Nachricht----- > > Von: Weber, Andreas, M-ED > > Gesendet: Montag, 5. Juli 2010 09:47 > > An: 'users@activemq.apache.org' > > Betreff: Pure Master/Slave Bug? Expired messages not replicated to = Slave > > > > Hi, > > > > I use a Pure Master/Slave configuration with ActiveMQ 5.3.2. > > Master/Slave both use the same DLQ configuration with: = processExpired=3D"true" > processNonPersistent=3D"true" > > > > The normal Master/Slave processing seems to work correctly, actions = on Master are always replicated > to the Slave. > > But there's a problem: Expired messages do go to the Master's DLQ, = but this is not adapted in the > Slave. > > > > I debugged in the (Slave's) Code and found the appropriate = send-to-DLQ-Command/Message arriving at > the MasterConnector. > > But in further processing this message is filtered out as a = duplicate(?) (TransactionBroker.send() > resp. ActiveMQMessageAudit.isDuplicate()). It seems that this = ProducerSequenceBit, which is checked > there, was already set... but here I'm a little bit lost in the code. > > > > So, any ideas why this happens? > > > > Some further note/question: A Slave also seems to have its own Timer = to look for expired messages in > the queues, even if the Master is still alive. Is that really = intended? > > So in the szenario above, the Slave also generates a message to the = DLQ for its expired item. But > this is filtered out as a duplicate, too. That may be ok here if = "normal replication" would work, but > I'm generally not sure if a Slave should really run it's own timeout = checking of expired messages at > all, as long as he's not become a Master. > > > > Best regards, > > =A0Andreas >=20 >=20 >=20 > -- > http://blog.garytully.com >=20 > Open Source Integration > http://fusesource.com