Why do you only want one node to be active at once?
How would it harm your application it both were active?
We are using JMS IDs for sequencing, so if we have 2 nodes in JBoss JMS cluster setup, then because the way JMS ID generation is implemented for JBoss Msg 1.2 (each node gets a block of JMS IDs), the sequence will be lost if 2 nodes process requests in parallel.
To avoid this scenario and still to have an automated failover, i am looking into it.
Either way it will be good to know if there is an option to deploy Active/Passive way.
the sequence will be lost if 2 nodes process requests in parallel.
It shouldn't. Please can you explain what you mean in more detail. The id block functionality is designed to work no matter how many nodes are in the cluster.
Sorry, here are more details:
There is no issue with the JMS ID implementation of JBoss Msg 1.2.
Only problem is it does not help us in our specific requirement, which goes like this:
1. We want to make sure that each msg getting into the queue has a Sequence Number.
2. We need to make sure that this sequence number is real sequence as who ever posted the message first should get a sequence number that is lower to the one who posts the msg next.
3. The JBossMsg1.2 implementation gives sequence numbers in blocks to each node (1to256 to node1, 257-xxx to node2).
4. In this case we could end-up on node 2 and would get a sequence number for a msg that came in earlier to be higher than the request that came to node1 at a later time.
Please confirm that my understanding is correct about the implementation.
A JMS message id is just supposed to be unique. That's it.
Do not infer anything else into it, it would be very bad practice to do so.
We could change the format at any point.
But can you please provide an indication as:
"if there is/will an option to deploy Active/Passive way"
Why do you want to deploy active/passive?
Why not just have multiple servers active?
Reason: Available h/w resources.
We have one dedicated physical server for running JBoss msg. Another physical server that hosts existing JBoss instance running some application. We want to use this second server runnign a passive JBossMsg instance. So in case when the dedicated JBossMsg goes down, then the second shared server can take the load temporarily automatically, till we bring back the dedicated up again.
Oher reason would be that we bring down the dedicated JBossMsg server for OS level patching, essentially minimizing the app downtime and increase availablity.
Ok, that makes sense.
Well.. right now we don't support active passive. But I can't see it would be too difficult to enable. Basically you need the HA part but not the clustering part.
Could you add a JIRA task and schedule it against 1.2.1?