Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id CEA89200D1F for ; Fri, 13 Oct 2017 15:20:54 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id CD1001609E9; Fri, 13 Oct 2017 13:20:54 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 1FE391609D1 for ; Fri, 13 Oct 2017 15:20:53 +0200 (CEST) Received: (qmail 46802 invoked by uid 500); 13 Oct 2017 13:20:53 -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 46786 invoked by uid 99); 13 Oct 2017 13:20:53 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 13 Oct 2017 13:20:53 +0000 Received: from mail-oi0-f43.google.com (mail-oi0-f43.google.com [209.85.218.43]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 844B51A0185 for ; Fri, 13 Oct 2017 13:20:52 +0000 (UTC) Received: by mail-oi0-f43.google.com with SMTP id n82so14284314oig.3 for ; Fri, 13 Oct 2017 06:20:51 -0700 (PDT) X-Gm-Message-State: AMCzsaUI9qQJB/9UBbFVMt/+mEJqcoJ4uWOCrfIAsI+AJSr14H1ZbBMG n3JaR8Gd48d6ELzKbyDWo4A3J3/XmptQrq0T3FyF8g== X-Google-Smtp-Source: AOwi7QBKeNExBToNFXxWTj7b75HJxAbTs+o9qs6HRMpSlzZFh/Xm1Fhq2Sov+aUJVneSztZzVPf6tPeLaNsYijhQg0o= X-Received: by 10.157.38.36 with SMTP id a33mr919923otb.397.1507900851392; Fri, 13 Oct 2017 06:20:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.74.139.27 with HTTP; Fri, 13 Oct 2017 06:20:51 -0700 (PDT) In-Reply-To: References: <1507849707323-0.post@n4.nabble.com> From: Justin Bertram Date: Fri, 13 Oct 2017 08:20:51 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Message redelivery when producer broker killed (without persistence) To: users@activemq.apache.org Content-Type: multipart/alternative; boundary="94eb2c1104209aacdf055b6d86d7" archived-at: Fri, 13 Oct 2017 13:20:55 -0000 --94eb2c1104209aacdf055b6d86d7 Content-Type: text/plain; charset="UTF-8" Artemis does support this in a way via colocated lives and backups. However, even then this is only valid for *persisted* messages. The title of the original email indicates this is needed for *non-persistent* messages. At least that's the way I understood it. Justin On Fri, Oct 13, 2017 at 7:44 AM, Tim Bain wrote: > I agree. > > The fundamental problem you're hitting is that in ActiveMQ 5.x, a message > can exist in only one active broker, so networks of brokers move messages > around via store-and-forward, as you described. For a message to be > available to multiple brokers at the same time (such that it would still be > available if a broker went down) you would need active-active clustering, > which ActiveMQ 5.x doesn't support. > > However, ActiveMQ Artemis does support that feature, so you might want to > consider switching to it to better support your use case. > > Tim > > On Oct 12, 2017 8:01 PM, "Justin Bertram" wrote: > > > > So, am I just missing something or are virtual topics not a solution? > > > > I don't think virtual topics are a solution to your problem. > > > > > > Justin > > > > On Thu, Oct 12, 2017 at 6:08 PM, pypen wrote: > > > > > Hi, > > > I am trying to solve a problem and I am wondering if Virtual Topics > > provide > > > a solution for the problem. > > > I have 2 brokers in a network of brokers. > > > Broker A has a producer to VirtualTopic.Test and a local consumer > > > Consumer.A.VirtualTopic.Test (lets call it consumer A). > > > Broker B has a local consumer Consumer.A.VirtualTopic.Test (lets call > it > > > consumer B). > > > (All clients [producers and consumers] are connected to the local > brokers > > > only) > > > > > > Broker A and Broker B are both running, consumer A is running, > consumer B > > > is > > > not running. > > > > > > I want to be able to kill consumer A and broker A entirely (pull the > > plug), > > > start consumer B and redeliver/process all messages that were not > > > acknowledged by consumer A on consumer B. > > > > > > What I thought would happen (a very naive assumption) is that when a > > > message > > > is produced on the VirtualTopic.Test topic, both brokers will receive > the > > > message and when it is acknowledged by consumer A consumer B will not > > > receive it (basically that the topics are treated as separate topics, > but > > > the queues as one). But the way it seems is that the message is handed > > from > > > broker A to consumer A, if consumer A does not acknowledge the message > is > > > handed back to the broker A, then handled over to broker B and then to > > > consumer B. The problem is that when broker A is killed, that message > is > > > lost. > > > > > > I tried also to use a statically included destination > > (VirtualTopic.Test), > > > which seems to send copies of the messages to consumer A and consumer B > > so > > > that once consumer B starts, it will receive all messages (that did not > > > expire), even the ones that were acknowledged already by consumer A. > > (when > > > both consumers are running all messages are delivered to both > consumers) > > > > > > So, am I just missing something or are virtual topics not a solution? > > > > > > > > > > > > > > > > > > -- > > > Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User- > > > f2341805.html > > > > > > --94eb2c1104209aacdf055b6d86d7--