We operate on two datacentres that are 1000+kms apart. Our configuration of the systems are
Integration Server 1
Universal Messaging 1 (3 nodes clustered)
Integration Server 2
Universal Messaging 2 (having 3 nodes clustered)
Please note that the UM1 (UM in data centre 1) and UM2 (UM in data centre 2) are not clustered across the data centres (DC) due to the limitation that the latency between these data centres is more than 10 ms (18 ms). SoftwareAG’s recommendation is to not cluster the UMs across data centre if the latency is greater than 10 ms.
Application1 in DC1 is configured to UM 1
Application 2 in DC2 is configured to UM2
Application 2 runs active-passive i.e. Application 2 in DC2 is active and the same application 2 is passive in DC1.
But the application 2 can be activated in DC1 anytime (making the application 2 in DC2 passive)
The queue / topic definitions or configurations are identical in UM1 & UM2
As stated in ‘current setup’, Application 1 has to publish a file to Application 2 via UM. In the above scenario: Application 1 doesnt know if the application 2 is active in data centre 1 or data centre 2. It publishes the message to UM in DC1. Application 2 is subscribing to this message in UM in data centre 2 and not on data centre 1. So the message is published to UM1 while the subscribing application is looking for the message in UM2.
I cannot hardcode Application 1 to always publish the message to UM2 because the application 2 can either sit on DC1 or DC2. We dont want the application to get tightly coupled.
How can i overcome this problem? Can application 2 listen to the same queue in UM1 and UM2 (Since the queue definitions are identical in UM1 and UM2)?
Please let me know your thoughts.