|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Speeding up MQRC_CONNECTION_BROKEN (2009) -detection ? |
« View previous topic :: View next topic » |
Author |
Message
|
aq |
Posted: Wed Mar 02, 2005 6:57 am Post subject: Speeding up MQRC_CONNECTION_BROKEN (2009) -detection ? |
|
|
Apprentice
Joined: 20 Dec 2001 Posts: 47
|
Hi
We have small JMS / MQ Java client program, which is distributed to about 2000 Windows XP workstations.
One of the processing scenarios that the Java program does is "synchronous" request/reply, server program sends request to the Java client to process and expects response within 10 seconds, if the response doesn't arrive in 10 seconds the server program interprets processing as failed / timeouted.
Java client’s normal processing usually takes something from 1 - 2 seconds, but sometimes we see that it takes something like 20 to 60 seconds! Time goes in these cases to the fact that when trying to send using javax.jms.QueueSender.send(Message arg0) -method, method hangs very long time (20 - 60 seconds) and then throws 2009 MQRC_CONNECTION_BROKEN error. Java client has retry logic, but response is at that point already too late.
The questions are:
- Is there some way to speed up that it takes from the QueueSender to detect that connection to the server is not valid anymore (to few seconds) ?
- One option would be to re-create the sending connection every time, but because there is about 2000 clients / workstations and about 60 % of them receives request/rply message in "peak hours" of every 5 to 10 seconds, I wondered can the MQ server handle this constant opening and closing of client connections (or is there some other harm of it) ?
Regards,
aq |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Mar 02, 2005 11:11 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You have to factor in that you are not dealing with MQ here but with TCP/IP networking timeout.
If you want to minimize the impact of network troubles you could have a few concentrators (MQ Servers) that will send the work to the "Servers" MQ Servers.
The java apps would only talk to the concentrators wich would then talk to the servers. Now if you wanted to load balance the servers you could have concentrators and servers in a cluster.
And don't forget to set time to live on the producers to be passed onto the message when sent. The servers should then implement the same on the reply to message. This way expired messages will get removed from the queue as soon as you try to get the next reply.
Enjoy  |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Mar 02, 2005 4:33 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
|
Back to top |
|
 |
aq |
Posted: Wed Mar 02, 2005 10:13 pm Post subject: |
|
|
Apprentice
Joined: 20 Dec 2001 Posts: 47
|
Thanks Saper and Peter to pointing out where the problem lays, and for improvement suggestions.
The thread link that you Peter posted is SUPER to describe the situation (as well the MD0C - PDF that is mentioned in thread).
Thanks a lot once again! Time to go read and internalize MD0C - PDF and test it in practice…
aq |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|