cancel
Showing results for 
Search instead for 
Did you mean: 

Proxy to JMS szenario - two different receiver queues in production

Former Member
0 Kudos

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

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member200962
Active Contributor
0 Kudos
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.

Former Member
0 Kudos

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

Former Member
0 Kudos

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

Former Member
0 Kudos

Hi Rajesh,

this is exacly what I am searching for.

Could you please give me some details for that?

The queue-names are the same for both instances, the queue-channels are different.

Thanks a lot,

Stefan

Edited by: Stefan Burghardt on Aug 29, 2011 11:27 AM

Former Member
0 Kudos

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

Former Member
0 Kudos

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