on 08-29-2011 9:02 AM
Hi guys,
I've got the following async scenario: Proxy to JMS.
Now I want to solve the following requirement:
In production environment are 2 instances (hosts) with the jms queues, one as a "normal" and one for reliability in case of any network errors, as fail over. In fact: we've got two different receiver queues (on different hosts with different ports) in case of a host is not available.
Is there a way to handle the second queue in receiver JMS-adapter?
I thought about "replyTo destination" in ASMA with Dynamic Configuration:
-> getting the hostname in Dynamic Configuration and see if we are on production instance (for test and development that doesn't matter)
-> make a lookup in Dynamic Configuration to check the availability ot the default host
-> in case of non-availability: overwrite the default host and default queue entry with the available host and available queue
-> in ASMA: host & queue-entry in "additional properties"
Any other suggestions are welcome
If you have ideas far out from my thoughts feel free to tell
Thanks a lot,
Stefan
Is there a way to handle the second queue in receiver JMS-adapter?
I am doubtful if this can be done dynamically during runtime....may be you (support team) needs to manually change the receiver channel to point to the backup queue.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I found that blog here about multiple jms-queues, but I don't think that different host and different port is also managable in this way:
/people/sarvesh.singh3/blog/2011/03/11/how-to-set-jms-queues-in-receiver-channel-by-using-replyto-destination-method-in-synchronous-scenario
Is there no way to handle that automatically instead of creating a second JMS-Channel with the data for the second instance that could be switched manually?
Thanks a lot,
Stefan
Hi,
I am not sure if you explored the option of fail over server in JMS adapter.
This is the default bahaviour of JMS adapter and what it does is if the actual Server 1 fails due to some reason, it autoamtically connects to Server 2 ( fail over). But the queue name should be the same in both servers.
This can be configured in receiver JMS channel connection String.
For Example For MQ
JMS.QueueConnectionFactoryImpl.constructor = java.lang.String failover:(<<Actual Server host:port%2C<<Fail over server host :PORT>>)?randomize=false
Let me know if you need any further info on the same.
Thanks
Rajesh
I have already provided the details.
And you need to have only one channel which can connect to both server.
You don't need to create two different channel with two different host name.
One channel with
two host name ( Original server + Fail over server ) , paramter JMS.QueueConnectionFactoryImpl.constructor
One queue name , parameter JMS.QueueImpl.constructor:
What you need to do is, please create the SAME JMS queue in both servers and configure the fail over server as i mentioned earlier.
Please configure the query string parameters in the receiver JSM channel ( Advanced-->Additional paramters )
JMS.QueueConnectionFactoryImpl.classname:
JMS.QueueConnectionFactoryImpl.constructor: As i mentioned in the earlier post
JMS.QueueImpl.classname:
JMS.QueueImpl.constructor: <<queue name>>
Edited by: Rajesh on Aug 29, 2011 11:31 AM
Hi Rajesh,
thank you for your good answer.
The thing is that the production configuration is given by our config team: the queue manager name is different from each other, each instance has it's own name, the whole MQ-config thing is not in my hands. The JMS-queue name is the same, but queue manager name is different. If I understood you correctly, than we couldn't use the failover in parameters in case of different queue manager names. Is that correct?
Thanks a lot,
Stefan
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.