Our application is load balanced between multiple Hosts. Our HornetQ is clustered (Multicast). We have enabled persistence to true. Consider the below scenario,

(1) Persistence is enabled using journals(file based) in HornetQ.

(2) When one of my instance goes down, the messages processed by that instance is available for the other instances in the cluster to process.

(3) When my queue itself goes down and comes back, what will happen ?

(4) Consider the queue as well as one of the instance goes down. The instance is not re-started, only the Queue is started again. What will happen to the messages that were part of the downed instances journal.

(2) why are you making that assumption? Cluster != Failover on HornetQ. When one node goes down the messages are unavailable until you restart that node. You can select a backup node for your server and on that case the other nodes will take over.

(3) it depends if you have a backup node or not. if you have a backup node, you could have a failback (if you have configured failback) and the load would then take over.

(4) how can you start the queue without starting the server? your statement here doesn't make any sense.

(5) (answering the loss of packets).... as any other message system, we guarantee that ACKed messages will be delivered. that means you have to control transactions properly and handle errors as in any other system.

"(2) why are you making that assumption? Cluster != Failover on HornetQ. When one node goes down the messages are unavailable until you restart that node. You can select a backup node for your server and on that case the other nodes will take over."

Will you please elaborate on this. I understand that when there are 4 nodes and one node goes down, in a cluster environment, all the messages that are being processed by the consumer( in the node that went down) maynot acknowledge and it will be available for the other nodes to process.

"(4) how can you start the queue without starting the server? your statement here doesn't make any sense."

Consider my application is load balanced between 4 nodes and all the node goes down. Apart from one node, I restart all other nodes. As I had said all are in cluster environment. The message persistence happens using journals. What will happen to the messages that are stored in the journal of the node that went down ? Can you please clarify on this part. I may or maynot restart the same node and I may bring in more nodes if there is a need.

please clarify me when a node adds a message into the clustered queue, will the queue packet information will be stored in all other nodes journals that are part of the cluster ?