|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Help! Slow performance of MQ client! |
« View previous topic :: View next topic » |
Author |
Message
|
shiseido |
Posted: Wed Nov 28, 2001 8:52 am Post subject: |
|
|
Newbie
Joined: 27 Nov 2001 Posts: 2 Location: Taiwan
|
Hi:
We are deploying a Java servlet running on WebSphere Application Server v3.5.4, the platform is AIX ML09.
Our servlet using TCP client mode to connect MQ Server running on another machine, servlet sends a message to MQ Server, and after waiting for a few seconds servlet will connect again (to another queue)to receive the reply message.
Since Java servlet has multiple instances, we suppose they will compete for the channel thus hurt performance. In order to compensate the synchronous nature of client connection, we started 6 listener on MQ Server to listen on 6 TCP ports, and the Java servlet will randomly pick one port to connect to MQ server.
However, we have found that even different servlet instances connect to different ports, they still seems block each other. In our measurement, if we sumbit a single request to the servlet, the response comes back in about 4 seconds. But if we sumbit 100 requests (10 requests at each wave, interval between every wave is 30 secs) the response time soars to 40 secs in average, some responses even come back after 160 secs!! The result suggests that even when we assign 6 different ports, many servlet instnaces still have to wait for antoher instances to complete their operation, despite of the fact that they are using different ports. This is not what we expected.
Does anyone had dealed with such a scenario? We are very appreciate if you can share your experience with us, we are stuck with the performance problem. Thank a lot in advance!
---- Shiseido |
|
Back to top |
|
 |
kolban |
Posted: Wed Nov 28, 2001 9:16 am Post subject: |
|
|
 Grand Master
Joined: 22 May 2001 Posts: 1072 Location: Fort Worth, TX, USA
|
There is no need to have multiple channels or ports, one will more than suffice. The key component here is that the MQQueueManager object and anything derived from it is inherently serialized (synchronized). If you want multiple servlets to each access the queue manager in parallel, have each servlet instance own its own MQQueueManager object. Since these are relatively expensive to create, consider maintaining a pool of such objects.
Two Java threads that attempt to make use of the same MQQueueManager object (or derived object such as a queue) will serialize on each other. However, if each thread has its own MQQueueManager object, all will be well. |
|
Back to top |
|
 |
shiseido |
Posted: Tue Dec 18, 2001 7:41 am Post subject: |
|
|
Newbie
Joined: 27 Nov 2001 Posts: 2 Location: Taiwan
|
Hi:
Thank you for your suggestion, but unfortunately we have the need for multiple ports, since we have hundreds of clients will connect to application server simutaneously and transfer large messages, thus the 100 concurrent TCP/IP connections limit will easily encountered (in the beginning of office hour, even 200+ connections are observed). The need for multiple channels/ports had incurred another problem, I will raise it in another thread.
Thanks a lot for your replying. |
|
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
|
|
|
|