HI ALL,
I wrote a com object with business logic to format a message/connect a qmgr/post a message/get messaga from response queue/issue a disconnect for Qmgr and clean up.
Initially I only had 20 sessions available in Qmgr on a remote host. I am using this com component/ATL to connect from PB/VB and ASP. The PB is deployed on 100 agent m/cs. Everything works good in PB world since its each m/c talking. Those 20 connections are good enough. But when i moved the asp code into prod with out load testing the connections filled up soon and Qmgr threw 2059.
I had increases the sessions to 1000. The problem is that when the dll runs under asp/IIS its not releasing the connection as soon as disconnect is called. It waits for 40-50 seconds and then kills the connection on the MQ server. I have used netstat -an to time this. I am not knowledgeable enough to write thread pools in COM objects since my actual background is JAVA.
On trying various things I come across the MQ support for MTS. Seems like this is the solution for all my problems. Threads will be pooled and as the documentation says the MTS support should manage that Connection handles etc. I have to put my component under MTS and try to run the load tests on this component.
Any experiences from the MQ gurus is welcome.
Here are outstanding things that I am looking for.
1. Does MQClient has this support built in.
2. There is a section in the help doc that say
"Bear in mind that objects that use WebSphere MQ must reside on the same computer as the queue manager that they use". I will be connecting to the remote queue manager using the MQseries client.
The company got a large contract with SEARS and they were looking for 3000 concurrent users on the web. This has put me in a lot of trouble. Everything would have been fine if the connections are released immediately once disconnect is called.
Any suggestions are greatly appreciated instead I am begging for any suggestions. This IIS/ASP is killing me.
THanks
kadiyams
I wrote a com object with business logic to format a message/connect a qmgr/post a message/get messaga from response queue/issue a disconnect for Qmgr and clean up.
Initially I only had 20 sessions available in Qmgr on a remote host. I am using this com component/ATL to connect from PB/VB and ASP. The PB is deployed on 100 agent m/cs. Everything works good in PB world since its each m/c talking. Those 20 connections are good enough. But when i moved the asp code into prod with out load testing the connections filled up soon and Qmgr threw 2059.
I had increases the sessions to 1000. The problem is that when the dll runs under asp/IIS its not releasing the connection as soon as disconnect is called. It waits for 40-50 seconds and then kills the connection on the MQ server. I have used netstat -an to time this. I am not knowledgeable enough to write thread pools in COM objects since my actual background is JAVA.
On trying various things I come across the MQ support for MTS. Seems like this is the solution for all my problems. Threads will be pooled and as the documentation says the MTS support should manage that Connection handles etc. I have to put my component under MTS and try to run the load tests on this component.
Any experiences from the MQ gurus is welcome.
Here are outstanding things that I am looking for.
1. Does MQClient has this support built in.
2. There is a section in the help doc that say
"Bear in mind that objects that use WebSphere MQ must reside on the same computer as the queue manager that they use". I will be connecting to the remote queue manager using the MQseries client.
The company got a large contract with SEARS and they were looking for 3000 concurrent users on the web. This has put me in a lot of trouble. Everything would have been fine if the connections are released immediately once disconnect is called.
Any suggestions are greatly appreciated instead I am begging for any suggestions. This IIS/ASP is killing me.
THanks
kadiyams