It depends on how (and if) the Hornet servers are talking to each other, if you are using coe bridges then you will have to upgrade all the servers at the same time, we only supoort backward compatibilty from a clients perspective.
We use core queues, diverts and core bridges to build up the integration between different HornetQ servers. Each hornetQ server sends and receives messages.
I'm aware that servers that are talking to each other need to be on the same version. Some minor upgrades might work for the hornetQ client side.
My question is more on a strategic level. Our applications will have as endpoint (beyond the messaging) either a legacy system or a database.
My current approach would be:
Step 1. Application A in version 1.0 embedding HornetQ 2.3.0.Final - it can only talk to this version on all the different instances.
Step 2. Install application A v2.0 embedding HornetQ 2.4.x.Final on the same physical machine(s). Port and data directory will be configured differently. Both servers are running in parallel.
Step 3. Uninstall application v1.0 once all messages are processed and no new once are to be expected.
Step 2 and 3 would be repeated for all machines in the whole enterprise system which might be within days or even weeks.
The whole enterprise system with 100+ servers will be migrated gradually from A1.0 to A2.0.
Is this all to think of or am I missing something?
as long as different hornetq servers dont talk to each other i don't see any problems
Thanks Andy! This is good and helpful answer.