Re: Duplicate messages durable subscriber

2014-11-04 Thread Andreas Gies

Hi Tim,

I will make some time tomorrow to try your suggestions.

A Virtual destination would simply replace a durable subscriber with a 
Queue receiver.
Messages posted to a mapped topic would end up in the the underlying 
queues.


Now, a consumer that wasn't connected to the peer broker would 
immediately receive
the messages on the broker - that would address the problem of 
temporarily unvisible

messages.

As for the duplicated delivery of messages - effectively we would have 
concurrent consumers
(even though most likely onlz one of the would be connected at any one 
point in time).
A message consumed on either side of the NWOB would effectively vanish 
from the underlying

Queue and not be delivered again.


Due to that I was contemplating a distributed broker plugin that would 
kind of synchronize the

consumption of messages of a DS within a NWOB.

However, before going that path I wanted to make sure that I am not 
missing something obvious.



Thanks for the answers so far and best regards
Andreas

On 03/11/14 20:23, Tim Bain wrote:

Andreas,

Your spec added two configuration elements your previous post didn't
mention, and I'd like to eliminate each of them in turn to see if it's
causing/contributing to the problem.

1. Your networkConnectors are apparently multicast.  Please see what
happens if you configure them as
static:(tcp://host:port?tcpOptions)?staticOptions, to take the multicast
(and the broker discovery that it's presumably doing) out of the equation.
I recently experimented with what happens when the failover is allowed to
perform a reconnect in a broker-to-broker networkConnector, and the result
is duplicate and/or stale subscriptions between the brokers.  That behavior
could explain what you're seeing, if multicast is similarly performing
reconnects without notifying the static wrapper so it can recreate the
network bridge, so let's take it out of the equation to see if the behavior
changes.  (I've never used multicast, so this might not make sense; if
someone knows that this can't be the issue, please say so.)
2. I don't know how gracefully conduitSubscriptions reacts to consumers
moving around the network of brokers; I don't believe this should be the
problem, but if #1 doesn't produce any change in behavior, can you set
conduitSubscriptions=false and see if anything changes?

I'm not clear on how Virtual Topics will solve the problem; can you
explain?  To me this feels like a problem with broker-to-broker management
of subscriptions made on behalf of clients (most likely duplicate
subscriptions for a client, one from each broker, after a failover), and
I'm not sure how a Virtual Topic would make it any better if that's the
case.  But if you know of a way that it would, that might help me to
understand what's going on.

Tim

On Sat, Nov 1, 2014 at 9:50 AM, Andreas Gies andr...@wayofquality.de
wrote:


Hello Tim,

thanks for your answer. It took me a bit to digest it - so my apologies for
the delay in my answer.

I have come up with a test case that shows - and unfortunately confirms
my observations.The test case is located at [1].

Here is the excerpt of my problem descriptions  observations:

/**
  * This specification shall help to investigate the duplicate delivery of
messages for durable subscribers
  * within a network of brokers. The problem has been posted on the
ActiveMQ mailing list on Oct. 18th 2014
  * and was described as follows:
  *
  * Suppose you have a network of brokers consisting of two members
discovering each other via multicast.
  * The network bridge is set up using conduit subscriptions. Now assume
that we have a durable subscriber
  * named S that connects to the network of brokers using a failover uri
pointing to both brokers.
  *
  * First, the subscriber connects to Broker A. It will consume all
messages published to either Broker A or B.
  * Now the subscriber disconnects and stays offline for a bit, then it
reconnects to Broker B. Now it will pick
  * up all messages that have been published while it was offline.
  *
  * Let's say then 10 messages are published. All is well as the subscriber
consumes those messages.
  * If the subscriber then disconnects and reconnects to Broker A, these 10
messages will be consumed
  * again by the reconnected subscriber.
  *
  * According to Tim Bain on Oct., 20th 2014 this indicates a bug rather
than a missing feature in ActiveMQ
  * and this Spec shall pinpoint the behavior.
  * *
  * The test is based on ActiveMQ 5.10
  *
  * Observations:
  * -
  * Depending on when the durable subscriber is known to the members of the
NWOB, messages can be either left pending
  * or delivered repeatedly (see the last 2 test cases). Message gaps can
occur, if the DS has only connected
  * to one broker so far. If the DS then disconnects and after a while
reconnects to the other broker it wasn't
  * connected to so far, it will not see the messages 

Re: Duplicate messages durable subscriber

2014-11-04 Thread Tim Bain
The functionality you're contemplating for the broker plugin seems pretty
far off from the standard ActiveMQ approach, since it involves knowing the
state of a message across the full network of brokers rather than allowing
each broker to operate as a stand-alone island that only needs to know
about itself and how to pass message to its neighbors.  So I'd be very
hesitant to go down the path you're suggesting.

And I suspect you won't have to; the functionality you're looking to use is
how ActiveMQ should work, so I think you'll find that either there's a bug
in ActiveMQ or a bug in your configuration.  Or maybe there's a minor
missing feature or one that's not been applied to all the transports it
should have; either way, I suspect the actual fix will turn out to be much
simpler than the plugin you're contemplating.

We'll see what shakes out as you simplify your configuration to remove the
less-common configuration options.  Eventually we should get to a
configuration that delivers the messages correctly but maybe doesn't have
all the configuration options enabled that you want to use, and then it's a
question of why it stops working with the less-common configuration options
you're using.

On Tue, Nov 4, 2014 at 8:16 AM, Andreas Gies andr...@wayofquality.de
wrote:

 Hi Tim,

 I will make some time tomorrow to try your suggestions.

 A Virtual destination would simply replace a durable subscriber with a
 Queue receiver.
 Messages posted to a mapped topic would end up in the the underlying
 queues.

 Now, a consumer that wasn't connected to the peer broker would immediately
 receive
 the messages on the broker - that would address the problem of temporarily
 unvisible
 messages.

 As for the duplicated delivery of messages - effectively we would have
 concurrent consumers
 (even though most likely onlz one of the would be connected at any one
 point in time).
 A message consumed on either side of the NWOB would effectively vanish
 from the underlying
 Queue and not be delivered again.


 Due to that I was contemplating a distributed broker plugin that would
 kind of synchronize the
 consumption of messages of a DS within a NWOB.

 However, before going that path I wanted to make sure that I am not
 missing something obvious.


 Thanks for the answers so far and best regards
 Andreas

 On 03/11/14 20:23, Tim Bain wrote:

 Andreas,

 Your spec added two configuration elements your previous post didn't
 mention, and I'd like to eliminate each of them in turn to see if it's
 causing/contributing to the problem.

 1. Your networkConnectors are apparently multicast.  Please see what
 happens if you configure them as
 static:(tcp://host:port?tcpOptions)?staticOptions, to take the
 multicast
 (and the broker discovery that it's presumably doing) out of the
 equation.
 I recently experimented with what happens when the failover is
 allowed to
 perform a reconnect in a broker-to-broker networkConnector, and the
 result
 is duplicate and/or stale subscriptions between the brokers.  That
 behavior
 could explain what you're seeing, if multicast is similarly performing
 reconnects without notifying the static wrapper so it can recreate the
 network bridge, so let's take it out of the equation to see if the
 behavior
 changes.  (I've never used multicast, so this might not make sense; if
 someone knows that this can't be the issue, please say so.)
 2. I don't know how gracefully conduitSubscriptions reacts to
 consumers

 moving around the network of brokers; I don't believe this should be
 the
 problem, but if #1 doesn't produce any change in behavior, can you set
 conduitSubscriptions=false and see if anything changes?

 I'm not clear on how Virtual Topics will solve the problem; can you
 explain?  To me this feels like a problem with broker-to-broker management
 of subscriptions made on behalf of clients (most likely duplicate
 subscriptions for a client, one from each broker, after a failover), and
 I'm not sure how a Virtual Topic would make it any better if that's the
 case.  But if you know of a way that it would, that might help me to
 understand what's going on.

 Tim

 On Sat, Nov 1, 2014 at 9:50 AM, Andreas Gies andr...@wayofquality.de
 wrote:

  Hello Tim,

 thanks for your answer. It took me a bit to digest it - so my apologies
 for
 the delay in my answer.

 I have come up with a test case that shows - and unfortunately confirms
 my observations.The test case is located at [1].

 Here is the excerpt of my problem descriptions  observations:

 /**
   * This specification shall help to investigate the duplicate delivery
 of
 messages for durable subscribers
   * within a network of brokers. The problem has been posted on the
 ActiveMQ mailing list on Oct. 18th 2014
   * and was described as follows:
   *
   * Suppose you have a network of brokers consisting of two members
 discovering each other via multicast.
   * The network bridge is set up 

Re: Duplicate messages durable subscriber

2014-11-04 Thread Andreas Gies

That's the way I'd prefer it ;)

Will keep you posted
Andreas

On 04/11/14 18:55, Tim Bain wrote:

The functionality you're contemplating for the broker plugin seems pretty
far off from the standard ActiveMQ approach, since it involves knowing the
state of a message across the full network of brokers rather than allowing
each broker to operate as a stand-alone island that only needs to know
about itself and how to pass message to its neighbors.  So I'd be very
hesitant to go down the path you're suggesting.

And I suspect you won't have to; the functionality you're looking to use is
how ActiveMQ should work, so I think you'll find that either there's a bug
in ActiveMQ or a bug in your configuration.  Or maybe there's a minor
missing feature or one that's not been applied to all the transports it
should have; either way, I suspect the actual fix will turn out to be much
simpler than the plugin you're contemplating.

We'll see what shakes out as you simplify your configuration to remove the
less-common configuration options.  Eventually we should get to a
configuration that delivers the messages correctly but maybe doesn't have
all the configuration options enabled that you want to use, and then it's a
question of why it stops working with the less-common configuration options
you're using.

On Tue, Nov 4, 2014 at 8:16 AM, Andreas Gies andr...@wayofquality.de
wrote:


Hi Tim,

I will make some time tomorrow to try your suggestions.

A Virtual destination would simply replace a durable subscriber with a
Queue receiver.
Messages posted to a mapped topic would end up in the the underlying
queues.

Now, a consumer that wasn't connected to the peer broker would immediately
receive
the messages on the broker - that would address the problem of temporarily
unvisible
messages.

As for the duplicated delivery of messages - effectively we would have
concurrent consumers
(even though most likely onlz one of the would be connected at any one
point in time).
A message consumed on either side of the NWOB would effectively vanish
from the underlying
Queue and not be delivered again.


Due to that I was contemplating a distributed broker plugin that would
kind of synchronize the
consumption of messages of a DS within a NWOB.

However, before going that path I wanted to make sure that I am not
missing something obvious.


Thanks for the answers so far and best regards
Andreas

On 03/11/14 20:23, Tim Bain wrote:


Andreas,

Your spec added two configuration elements your previous post didn't
mention, and I'd like to eliminate each of them in turn to see if it's
causing/contributing to the problem.

 1. Your networkConnectors are apparently multicast.  Please see what
 happens if you configure them as
 static:(tcp://host:port?tcpOptions)?staticOptions, to take the
multicast
 (and the broker discovery that it's presumably doing) out of the
equation.
 I recently experimented with what happens when the failover is
allowed to
 perform a reconnect in a broker-to-broker networkConnector, and the
result
 is duplicate and/or stale subscriptions between the brokers.  That
behavior
 could explain what you're seeing, if multicast is similarly performing
 reconnects without notifying the static wrapper so it can recreate the
 network bridge, so let's take it out of the equation to see if the
behavior
 changes.  (I've never used multicast, so this might not make sense; if
 someone knows that this can't be the issue, please say so.)
 2. I don't know how gracefully conduitSubscriptions reacts to
consumers

 moving around the network of brokers; I don't believe this should be
the
 problem, but if #1 doesn't produce any change in behavior, can you set
 conduitSubscriptions=false and see if anything changes?

I'm not clear on how Virtual Topics will solve the problem; can you
explain?  To me this feels like a problem with broker-to-broker management
of subscriptions made on behalf of clients (most likely duplicate
subscriptions for a client, one from each broker, after a failover), and
I'm not sure how a Virtual Topic would make it any better if that's the
case.  But if you know of a way that it would, that might help me to
understand what's going on.

Tim

On Sat, Nov 1, 2014 at 9:50 AM, Andreas Gies andr...@wayofquality.de
wrote:

  Hello Tim,

thanks for your answer. It took me a bit to digest it - so my apologies
for
the delay in my answer.

I have come up with a test case that shows - and unfortunately confirms
my observations.The test case is located at [1].

Here is the excerpt of my problem descriptions  observations:

/**
   * This specification shall help to investigate the duplicate delivery
of
messages for durable subscribers
   * within a network of brokers. The problem has been posted on the
ActiveMQ mailing list on Oct. 18th 2014
   * and was described as follows:
   *
   * Suppose you have a network of brokers consisting of two members
discovering each other via 

Re: Duplicate messages durable subscriber

2014-11-03 Thread Tim Bain
Andreas,

Your spec added two configuration elements your previous post didn't
mention, and I'd like to eliminate each of them in turn to see if it's
causing/contributing to the problem.

   1. Your networkConnectors are apparently multicast.  Please see what
   happens if you configure them as
   static:(tcp://host:port?tcpOptions)?staticOptions, to take the multicast
   (and the broker discovery that it's presumably doing) out of the equation.
   I recently experimented with what happens when the failover is allowed to
   perform a reconnect in a broker-to-broker networkConnector, and the result
   is duplicate and/or stale subscriptions between the brokers.  That behavior
   could explain what you're seeing, if multicast is similarly performing
   reconnects without notifying the static wrapper so it can recreate the
   network bridge, so let's take it out of the equation to see if the behavior
   changes.  (I've never used multicast, so this might not make sense; if
   someone knows that this can't be the issue, please say so.)
   2. I don't know how gracefully conduitSubscriptions reacts to consumers
   moving around the network of brokers; I don't believe this should be the
   problem, but if #1 doesn't produce any change in behavior, can you set
   conduitSubscriptions=false and see if anything changes?

I'm not clear on how Virtual Topics will solve the problem; can you
explain?  To me this feels like a problem with broker-to-broker management
of subscriptions made on behalf of clients (most likely duplicate
subscriptions for a client, one from each broker, after a failover), and
I'm not sure how a Virtual Topic would make it any better if that's the
case.  But if you know of a way that it would, that might help me to
understand what's going on.

Tim

On Sat, Nov 1, 2014 at 9:50 AM, Andreas Gies andr...@wayofquality.de
wrote:

 Hello Tim,

 thanks for your answer. It took me a bit to digest it - so my apologies for
 the delay in my answer.

 I have come up with a test case that shows - and unfortunately confirms
 my observations.The test case is located at [1].

 Here is the excerpt of my problem descriptions  observations:

 /**
  * This specification shall help to investigate the duplicate delivery of
 messages for durable subscribers
  * within a network of brokers. The problem has been posted on the
 ActiveMQ mailing list on Oct. 18th 2014
  * and was described as follows:
  *
  * Suppose you have a network of brokers consisting of two members
 discovering each other via multicast.
  * The network bridge is set up using conduit subscriptions. Now assume
 that we have a durable subscriber
  * named S that connects to the network of brokers using a failover uri
 pointing to both brokers.
  *
  * First, the subscriber connects to Broker A. It will consume all
 messages published to either Broker A or B.
  * Now the subscriber disconnects and stays offline for a bit, then it
 reconnects to Broker B. Now it will pick
  * up all messages that have been published while it was offline.
  *
  * Let's say then 10 messages are published. All is well as the subscriber
 consumes those messages.
  * If the subscriber then disconnects and reconnects to Broker A, these 10
 messages will be consumed
  * again by the reconnected subscriber.
  *
  * According to Tim Bain on Oct., 20th 2014 this indicates a bug rather
 than a missing feature in ActiveMQ
  * and this Spec shall pinpoint the behavior.
  * *
  * The test is based on ActiveMQ 5.10
  *
  * Observations:
  * -
  * Depending on when the durable subscriber is known to the members of the
 NWOB, messages can be either left pending
  * or delivered repeatedly (see the last 2 test cases). Message gaps can
 occur, if the DS has only connected
  * to one broker so far. If the DS then disconnects and after a while
 reconnects to the other broker it wasn't
  * connected to so far, it will not see the messages that have been
 produced while it was offline (it will see
  * those messages after reconnecting to broker 1).
  *
  * Dupilcate delivery will happen if the DS was already connected to both
 brokers. From the broker's perspective
  * it seems that those DS are handled as two distinct subscribers, so
 effectively all messages that are published
  * will eventually be delivered to both subscribers.
  */

 I know that Virtual Topics could solve the problem - however we in the
 middleware team are not in control of that
 particular client application and therefor we cannot change the consumer
 from a DS to a queue consumer.

 Can you confirm that we are indeed looking at a missing feature or a bug
 in ActiveMQ 5.10 ? - Otherwise i would
 need to get my thinking cap back on and see how I could solve the problem
 without changing the client code.

 [1]
 https://github.com/woq-blended/blended/blob/master/blended-testing/blended-testing-activemq/src/test/scala/de/woq/blended/testing/activemq/DurableSubscriberSpec.scala
 
 

Re: Duplicate messages durable subscriber

2014-11-01 Thread Andreas Gies
Hello Tim,

thanks for your answer. It took me a bit to digest it - so my apologies for 
the delay in my answer. 

I have come up with a test case that shows - and unfortunately confirms 
my observations.The test case is located at [1]. 

Here is the excerpt of my problem descriptions  observations:

/**
 * This specification shall help to investigate the duplicate delivery of 
messages for durable subscribers
 * within a network of brokers. The problem has been posted on the ActiveMQ 
mailing list on Oct. 18th 2014
 * and was described as follows:
 *
 * Suppose you have a network of brokers consisting of two members discovering 
each other via multicast.
 * The network bridge is set up using conduit subscriptions. Now assume that we 
have a durable subscriber
 * named S that connects to the network of brokers using a failover uri 
pointing to both brokers.
 *
 * First, the subscriber connects to Broker A. It will consume all messages 
published to either Broker A or B.
 * Now the subscriber disconnects and stays offline for a bit, then it 
reconnects to Broker B. Now it will pick
 * up all messages that have been published while it was offline.
 *
 * Let's say then 10 messages are published. All is well as the subscriber 
consumes those messages.
 * If the subscriber then disconnects and reconnects to Broker A, these 10 
messages will be consumed
 * again by the reconnected subscriber. 
 *
 * According to Tim Bain on Oct., 20th 2014 this indicates a bug rather than a 
missing feature in ActiveMQ
 * and this Spec shall pinpoint the behavior.
 * *
 * The test is based on ActiveMQ 5.10
 *
 * Observations:
 * -
 * Depending on when the durable subscriber is known to the members of the 
NWOB, messages can be either left pending
 * or delivered repeatedly (see the last 2 test cases). Message gaps can occur, 
if the DS has only connected
 * to one broker so far. If the DS then disconnects and after a while 
reconnects to the other broker it wasn't
 * connected to so far, it will not see the messages that have been produced 
while it was offline (it will see
 * those messages after reconnecting to broker 1).
 *
 * Dupilcate delivery will happen if the DS was already connected to both 
brokers. From the broker's perspective
 * it seems that those DS are handled as two distinct subscribers, so 
effectively all messages that are published
 * will eventually be delivered to both subscribers.
 */

I know that Virtual Topics could solve the problem - however we in the 
middleware team are not in control of that
particular client application and therefor we cannot change the consumer from a 
DS to a queue consumer. 

Can you confirm that we are indeed looking at a missing feature or a bug in 
ActiveMQ 5.10 ? - Otherwise i would 
need to get my thinking cap back on and see how I could solve the problem 
without changing the client code. 

[1] 
https://github.com/woq-blended/blended/blob/master/blended-testing/blended-testing-activemq/src/test/scala/de/woq/blended/testing/activemq/DurableSubscriberSpec.scala
 
https://github.com/woq-blended/blended/blob/master/blended-testing/blended-testing-activemq/src/test/scala/de/woq/blended/testing/activemq/DurableSubscriberSpec.scala

Thanks and best regards
Andreas


 On 20 Oct 2014, at 17:40, Tim Bain tb...@alumni.duke.edu wrote:
 
 If you have a network of brokers, messages on topics will be forwarded to
 whichever broker the consumer connects to, without duplicate delivery of
 any messages so long as no messages were processed by the consumer without
 being ack'ed.  If you were using queues, there's the potential for messages
 to get stranded on a broker if no consumers are left, but this isn't
 possible for topics.  (I'm not clear on the reason that topics can't get
 messages stranded even when consumers bounce between brokers, and
 unfortunately http://activemq.apache.org/networks-of-brokers.html doesn't
 describe why that is.)
 
 So I think that ActiveMQ's base capabilities will do exactly what you want,
 and if you're seeing redelivery of messages that were successfully acked
 when the consumer bounces to another broker, I think that would indicate a
 bug in ActiveMQ rather than a missing feature.
 
 On Sun, Oct 19, 2014 at 6:05 PM, Noel OConnor noel.ocon...@gmail.com
 wrote:
 
 Take a look at idempotent consumers in camel. This may help you out as a
 basis for your plugin if you decide to go with it.
 On Oct 18, 2014 5:47 PM, Andreas Gies andr...@wayofquality.de wrote:
 
 Hi
 
 I am using ActiveMQ 5.10 in an application. So far the requirement for
 the
 remote locations has been for pure store and forward capabilities,
 so that a single AMQ broker was sufficient. This has changed in a way
 that
 now 2 nodes should be present in the remote location for
 resilience and load balancing. I had considered a master/configuration as
 the requirement for resilience is stronger than that for load balancing.
 
 However, the situation in those locations is that I don’t 

Re: Duplicate messages durable subscriber

2014-10-20 Thread Tim Bain
If you have a network of brokers, messages on topics will be forwarded to
whichever broker the consumer connects to, without duplicate delivery of
any messages so long as no messages were processed by the consumer without
being ack'ed.  If you were using queues, there's the potential for messages
to get stranded on a broker if no consumers are left, but this isn't
possible for topics.  (I'm not clear on the reason that topics can't get
messages stranded even when consumers bounce between brokers, and
unfortunately http://activemq.apache.org/networks-of-brokers.html doesn't
describe why that is.)

So I think that ActiveMQ's base capabilities will do exactly what you want,
and if you're seeing redelivery of messages that were successfully acked
when the consumer bounces to another broker, I think that would indicate a
bug in ActiveMQ rather than a missing feature.

On Sun, Oct 19, 2014 at 6:05 PM, Noel OConnor noel.ocon...@gmail.com
wrote:

 Take a look at idempotent consumers in camel. This may help you out as a
 basis for your plugin if you decide to go with it.
 On Oct 18, 2014 5:47 PM, Andreas Gies andr...@wayofquality.de wrote:

  Hi
 
  I am using ActiveMQ 5.10 in an application. So far the requirement for
 the
  remote locations has been for pure store and forward capabilities,
  so that a single AMQ broker was sufficient. This has changed in a way
 that
  now 2 nodes should be present in the remote location for
  resilience and load balancing. I had considered a master/configuration as
  the requirement for resilience is stronger than that for load balancing.
 
  However, the situation in those locations is that I don’t have a shared
 db
  nor a shared filesystem. As far as I have understood the replicated
 level db
  would require at least 3 nodes ?
 
  This is why I have chosen a network of brokers in the end, which works
  well for any Queue based communication.
 
  Now my problem is that there is one client application that is provided
 by
  a 3rd party and uses durable subscriptions. It would be quite an effort
  to change that application towards using queues, so that I could consider
  virtual destinations.
 
  The problem occurs two-fold:
 
  Assume a  Subscriber connects to BrokerA, then disconnects and reconnects
  to Broker B. It consumes messages for a while, than disconnects
  and reconnects to Broker A. All messages that have already been consumed
  while it was connected to Broker B will be delivered again.
 
  My question is now whether this could be avoided by means of ActiveMQ
  alone ? - I was contemplating a broker plugin to track messages that
  have been consumed on other nodes so that I could avoid redelivering them
  again.
 
  Sorry if thats a bit vague - I am fishing for ideas ….
 
 
  Thanks and best regards
  Andreas



Re: Duplicate messages durable subscriber

2014-10-19 Thread Noel OConnor
Take a look at idempotent consumers in camel. This may help you out as a
basis for your plugin if you decide to go with it.
On Oct 18, 2014 5:47 PM, Andreas Gies andr...@wayofquality.de wrote:

 Hi

 I am using ActiveMQ 5.10 in an application. So far the requirement for the
 remote locations has been for pure store and forward capabilities,
 so that a single AMQ broker was sufficient. This has changed in a way that
 now 2 nodes should be present in the remote location for
 resilience and load balancing. I had considered a master/configuration as
 the requirement for resilience is stronger than that for load balancing.

 However, the situation in those locations is that I don’t have a shared db
 nor a shared filesystem. As far as I have understood the replicated level db
 would require at least 3 nodes ?

 This is why I have chosen a network of brokers in the end, which works
 well for any Queue based communication.

 Now my problem is that there is one client application that is provided by
 a 3rd party and uses durable subscriptions. It would be quite an effort
 to change that application towards using queues, so that I could consider
 virtual destinations.

 The problem occurs two-fold:

 Assume a  Subscriber connects to BrokerA, then disconnects and reconnects
 to Broker B. It consumes messages for a while, than disconnects
 and reconnects to Broker A. All messages that have already been consumed
 while it was connected to Broker B will be delivered again.

 My question is now whether this could be avoided by means of ActiveMQ
 alone ? - I was contemplating a broker plugin to track messages that
 have been consumed on other nodes so that I could avoid redelivering them
 again.

 Sorry if thats a bit vague - I am fishing for ideas ….


 Thanks and best regards
 Andreas