Author |
Message
|
4integration |
Posted: Thu Dec 13, 2007 12:05 am Post subject: Problems with >1000 concurrent users of HTTP input node |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
Hello,
We are facing problems with many concurrent users using a WebService in WMB (WMB 6.0.0.3).
We have a HTTP Input node in a flow with 25 additional instances.
When running a test client, simulating 1000 users we get "Connection Reset" This happens around 500 users and 280 users executing the service. Each user "sleeps" 15 sec between requests, therefore 500/280 users above.
We have executed:
Code: |
mqsiservice MyBroker -r HttpListenerThreadPoolSize=100 |
and restarted the broker. This didn't help.
I have seen other properties in this area such as maxthreads as:
Code: |
mqsichangeproperties MyBroker -b httplistener -o HTTPConnector -n maxThreads -v <some-number> |
Before making to much changes I would like to get some guidance from the experts (you) first.
Do you have any suggestions? _________________ Best regards
4 Integration |
|
Back to top |
|
 |
David.Partridge |
Posted: Thu Dec 13, 2007 12:27 am Post subject: |
|
|
 Master
Joined: 28 Jun 2001 Posts: 249
|
My initial thought was to increase the TCP/IP backlog for the httplistener, but AFAICT there isn't a property of the httplistener for this you can set with mqsichangeproperties.
So, I'll be very interested to see what you find out.
Do you have a PMR open to ask about this? _________________ Cheers,
David C. Partridge |
|
Back to top |
|
 |
4integration |
Posted: Thu Dec 13, 2007 12:34 am Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
Do you have any hint of where to find more info on this and how to set the configuration? _________________ Best regards
4 Integration |
|
Back to top |
|
 |
Michael Dag |
Posted: Thu Dec 13, 2007 1:08 am Post subject: |
|
|
 Jedi Knight
Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam)
|
Isn't this the reason why you would put an HTTP server or something like DataPower in between your users and the http input node of your broker?  _________________ Michael
MQSystems Facebook page |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Dec 13, 2007 7:19 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Isn't this what SupportPac IE01 is for? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
4integration |
Posted: Thu Dec 13, 2007 11:57 pm Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
Hello,
I somewhat agree with you, but as we are running quite small number of users it should work, right.
In the article http://www.ibm.com/developerworks/websphere/library/techarticles/0608_braithwaite/0608_braithwaite.html it says:
Quote: |
Message Broker can support about 1200 concurrent connections to a broker biphttplistener process. Of course if you need to support fewer than 1200 concurrent sessions, then you do not need to use the Proxy Servlet in this role. |
The project are currently investigating for real figures on how many concurrent users we need to support. I may be that we end up with the proxy etc .
Would it help to have a single servlet container (WAS/Tomcat/...) with the proxy servlet deployed, running towards a single WMB instance? _________________ Best regards
4 Integration |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Dec 14, 2007 7:56 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You don't say what platform you're running broker on... If you're running on Windows and trying to support a largish number of HTTP inputs AND a largish number of MQ channels.... _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
4integration |
Posted: Tue Jan 29, 2008 12:21 am Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
Sorry for being away for long...We are using Windows 2003 server.
We have tested with a clustered WAS with IE01 and it works much better even if we need to optimize HTTP connection pools etc.
However, when running IE01 quite hard (2000 concurrent users) and the servlet gets MQ connections. When the WAS appserver are restarted it will not release the MQ connections nor reuse the previously allocated. It starts to allocate new connections and the old ones remains and if that continue we will not be able to connect at all since all connections are allocated. Then manual work has to be performed in the qmgr (manual stop of the connection).
Any ideas? _________________ Best regards
4 Integration |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Jan 29, 2008 1:32 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
4integration wrote: |
Sorry for being away for long...We are using Windows 2003 server.
We have tested with a clustered WAS with IE01 and it works much better even if we need to optimize HTTP connection pools etc.
However, when running IE01 quite hard (2000 concurrent users) and the servlet gets MQ connections. When the WAS appserver are restarted it will not release the MQ connections nor reuse the previously allocated. It starts to allocate new connections and the old ones remains and if that continue we will not be able to connect at all since all connections are allocated. Then manual work has to be performed in the qmgr (manual stop of the connection).
Any ideas? |
What version of WAS / MQ are you using?
Make sure you use JMS and close the sender, session and connection correctly.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
4integration |
Posted: Tue Jan 29, 2008 1:59 am Post subject: |
|
|
 Disciple
Joined: 04 Sep 2006 Posts: 197 Location: Gothenburg, Sweden
|
We are using the following versions:
WAS: 6.1.0.11 (AIX 5.3)
WMQ: 6.0.2.0 (Win 2k3)
WMB: 6.0.0.3 (Win 2k3)
Since we are using IE01 we have not that many options/control how the connection is handled....or do you have any golden tip?
The configuration for IE01 is handled in web.xml and our looks like:
Code: |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app id="WebApp">
<!-- Proxy servlet for WBIMB HTTP input nodes -->
<display-name>WBIMB Proxy Servlet V2 - SupportPac IE01</display-name>
<servlet>
<servlet-name>WBIMBServlet</servlet-name>
<display-name>WBIMBServletV2</display-name>
<servlet-class>
com.ibm.broker.httpproxy.WBIMBServlet
</servlet-class>
<init-param>
<param-name>brokerName</param-name>
<!-- Set the message broker name here -->
<param-value>EOWYN_B3</param-value>
<description>Set the message broker name here</description>
</init-param>
<init-param>
<param-name>configFilePath</param-name>
<!-- This would be /var/mqsi/config/wsplugin.conf on UNIX -->
<param-value>
config/wsplugin6.conf
</param-value>
<description>
This would be
/var/mqsi/components/[broker_name]/config/wsplugin6.conf
on UNIX or C:\\Documents and Settings\\All Users\\
Application Data\\IBM\\MQSI\\components\\WBRK6_DEFAULT_BROKER\\config\\wsplugin6.conf
</description>
</init-param>
<init-param>
<param-name>ccsidForWsplugin</param-name>
<!-- Set the code page required for web.xml here -->
<param-value></param-value>
<description>Set the ccsid for wsplugin.conf</description>
</init-param>
<init-param>
<param-name>turnTraceOn</param-name>
<!-- Set 0 for no trace, 1 for normal or 2 for debug -->
<param-value>0</param-value>
<description>
Set 0 for no trace, 1 for normal or 2 for debug
</description>
</init-param>
<init-param>
<param-name>useClientMode</param-name>
<param-value>true</param-value>
<description>
Use MQ client (true) or bindings connection (false)
</description>
</init-param>
<init-param>
<param-name>clientModeHostname</param-name>
<param-value>eowyn-b3.it.domian.net</param-value>
<description>
Hostname or IP for the Queue Manager
</description>
</init-param>
<init-param>
<param-name>clientModeChannelName</param-name>
<param-value>PLSCM.SRV01</param-value>
<description>MQ SVRCONN channel name</description>
</init-param>
<init-param>
<param-name>clientModePortNumber</param-name>
<param-value>1419</param-value>
<description>MQ Listener port number</description>
</init-param>
<!--init-param>
<param-name>clientModeChannelName</param-name>
<param-value>SYSTEM.DEF.SVRCONN</param-value>
<description>MQ SVRCONN channel name</description>
</init-param>
<init-param>
<param-name>clientModePortNumber</param-name>
<param-value>2414</param-value>
<description>MQ Listener port number</description>
</init-param-->
<init-param>
<param-name>
useQueueManagerDataInsteadOfConfigFile
</param-name>
<!--Queue manager name or blank for none -->
<param-value>EOWYN_B3</param-value>
<description>
Queue manager name (remote proxy) or blank for none
(local proxy). Supported on WMB6 Fix Pack 1 or later.
</description>
</init-param>
<init-param>
<param-name>sleepBeforeGet</param-name>
<param-value>0</param-value>
<description>Sleep time in seconds</description>
</init-param>
<init-param>
<param-name>disconnectBeforeSleep</param-name>
<param-value>true</param-value>
<description>
To release MQ handle while sleeping
</description>
</init-param>
<init-param>
<param-name>useFastpathBindingsConnection</param-name>
<param-value>false</param-value>
<description>
Used when useClientMode is false. Be careful with this
option it can compromise the integrity of the queue
manager
</description>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>WBIMBServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
|
_________________ Best regards
4 Integration |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Jan 29, 2008 3:37 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Have you checked the JMS Topologies red book?
May be you just do not have enough channels configured on your qmgr for what you are attempting to do...
What is you maxchannels / maxactivechannels stanza?
 _________________ MQ & Broker admin |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Jan 29, 2008 4:20 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
fjb_saper wrote: |
Have you checked the JMS Topologies red book? |
FJ -
This is not JMS... Please read this thread a little more closely...
fjb_saper wrote: |
May be you just do not have enough channels configured on your qmgr for what you are attempting to do...
What is you maxchannels / maxactivechannels stanza? |
 _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Jan 29, 2008 2:29 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
jefflowrey wrote: |
FJ -
This is not JMS... Please read this thread a little more closely...
|
Sorry I read WAS and MQ and I'm off on a JMS scenario... _________________ MQ & Broker admin |
|
Back to top |
|
 |
|