Hi Guys, I was wondering if one of you ActiveMQ experts could answer a few of my questions regarding some implementation questions I have.
One of the scenario/use-cases I wish to accomplish is this: Note: I've simplified this to example to one consumer/producer, but really the scenario will be one producer to multiple consumers of the provider's topic. Say we have a provider 'p' drop in durable message into a topic 'T' and have consumer 'c' subscribe to messages from 'p's topic T in such a manner that i) if a connection is lost between c and p, p will actually hold on to those messages (for a set amount of time) ii) when c reconnects to p, p will receive those messages that it has missed and continue to receive future messages. iii) when a connection fails between p/c, c will try to reconnect to p (reliability?) and then try to accomplish retroactive/durable consuming (see i/ii) So, in English, the consumer wishes to receive all messages published to the topic, reconnect on failure, and receive all messages that were held on for him due to a connection failure. So my first question is such that. 1. Is this possible to accomplish this above use-case? My first guess is that it should be. I've read a lot of the posts, and it seems I have two options. Please correct me if I'm wrong: a) Option #1 for durability - Set the clientId and SubscriptionName when making a broker connection from the Consumer to the provider's Topic. This should make a topic 'durable'. (This should allow the consumer to receive past messages it missed during a connection outing after reconnect.) b) Option #2 for durability - Use the jms.useRetroactiveConsumer in the connection broker URI. (This should allow the consumer to receive past messages it missed during a connection outing after reconnect.). This seems to work sometimes, but not always. c) Option #1 for Reliability – Use the failover: prefix when configuring the connectionFactory's broker URI. My second question is : Is it possible to setup both durability and reliability for a consumer subscribing to a topic by setting params or prefixes within the connection URI passed to the connectionFactory? I ask this since I'm currently setting up the brokerURI via my servicemix config and it would be ideal to setup the durability/reliability details within the connection URI. BTW, I'm currently utilizing ServiceMix 3, with ActiveMQ 4.x if that makes a difference. I hope someone can make sense of these questions, Thanks! Rob
