|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQHttp Bridge (MA0Y) under load throws exception |
« View previous topic :: View next topic » |
Author |
Message
|
StefanSievert |
Posted: Fri Jun 06, 2008 8:18 am Post subject: MQHttp Bridge (MA0Y) under load throws exception |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
All,
this is to probe if anybody here has (good) experiences with the MQ HTTP Bridge under load from multiple threads.
I have it deployed in a WAS 6.1 AppServer with the WebSphere MQ V6 JMS provider classes and it works fine as long as I send requests from a single thread.
As soon as I use more than one thread to generate load, IllegalStateExceptions are being thrown for some, but not all requests.
The exception states that the session was closed, which indicates that there seems to be some unwanted session sharing going on.
Before I provide more details: Does this sound familiar to any of you?
Your helping thoughts are much appreciated!
Have a great weekend!
Stefan _________________ Stefan Sievert
IBM Certified * WebSphere MQ |
|
Back to top |
|
 |
matthew1001 |
Posted: Mon Jun 09, 2008 1:47 am Post subject: |
|
|
Novice
Joined: 09 Jun 2008 Posts: 19 Location: IBM Hursley Labs, Winchester, UK
|
Hi Stefan,
I run the development of the WMQ Bridge for HTTP SupportPac (MA0Y) and we do maintain our own session pool for connections to MQ. If a session times out or becomes invalid while in the pool, the next attempt to use it causes an IllegalStateException.
This exception is caught within the session pool for the Bridge, so if you are seeing the exception in the WAS logs I assume it is being logged by the MQ JMS classes.
Are you using the MLP (Message Listener Port) in WAS 6.1, or have you deployed the MQ 6 JCA Resource Adapter? The MLP is the recommended way to connect WAS 6.x to MQ, so I would suggest using this.
If you have any server logs I can look at I'd be interested to see them.
Cheers,
Matt Whitehead
WMQ Bridge for HTTP |
|
Back to top |
|
 |
StefanSievert |
Posted: Mon Jun 09, 2008 1:31 pm Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
matthew1001 wrote: |
Hi Stefan,
I run the development of the WMQ Bridge for HTTP SupportPac (MA0Y) and we do maintain our own session pool for connections to MQ. If a session times out or becomes invalid while in the pool, the next attempt to use it causes an IllegalStateException.
This exception is caught within the session pool for the Bridge, so if you are seeing the exception in the WAS logs I assume it is being logged by the MQ JMS classes.
|
Well, it looks like it is thrown by the EJS JMS classes, i.e. doesn't even reach the MQ JMS code:
Code: |
Stack Dump = javax.jms.IllegalStateException: Session closed
at com.ibm.ejs.jms.JMSSessionHandle.getOpenSession(JMSSessionHandle.java:1226)
at com.ibm.ejs.jms.JMSSessionHandle.getOpenUnifiedSession(JMSSessionHandle.java:1263)
at com.ibm.ejs.jms.JMSMessageProducerHandle.<init>(JMSMessageProducerHandle.java:129)
at com.ibm.ejs.jms.JMSSessionHandle.createProducer(JMSSessionHandle.java:1777)
at com.ibm.mq.http.BaseConnectionManager.getMessageProducer(Unknown Source)
|
Also, I should note that seeing this exception goes hand-in-hand with the message not making it to the queue and an MQHTTP50001 being returned to my test client.
Quote: |
Are you using the MLP (Message Listener Port) in WAS 6.1, or have you deployed the MQ 6 JCA Resource Adapter? The MLP is the recommended way to connect WAS 6.x to MQ, so I would suggest using this.
If you have any server logs I can look at I'd be interested to see them.
Cheers,
Matt Whitehead
WMQ Bridge for HTTP |
I have responded to your email address with a lot more detail.
THANK YOU for looking into that and helping me understand what may be happening.
Cheers,
Stefan _________________ Stefan Sievert
IBM Certified * WebSphere MQ |
|
Back to top |
|
 |
StefanSievert |
Posted: Mon Jun 09, 2008 1:32 pm Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
matthew1001 wrote: |
Hi Stefan,
I run the development of the WMQ Bridge for HTTP SupportPac (MA0Y) and we do maintain our own session pool for connections to MQ. If a session times out or becomes invalid while in the pool, the next attempt to use it causes an IllegalStateException.
This exception is caught within the session pool for the Bridge, so if you are seeing the exception in the WAS logs I assume it is being logged by the MQ JMS classes.
|
Well, it looks like it is thrown by the EJS JMS classes, i.e. doesn't even reach the MQ JMS code:
Code: |
Stack Dump = javax.jms.IllegalStateException: Session closed
at com.ibm.ejs.jms.JMSSessionHandle.getOpenSession(JMSSessionHandle.java:1226)
at com.ibm.ejs.jms.JMSSessionHandle.getOpenUnifiedSession(JMSSessionHandle.java:1263)
at com.ibm.ejs.jms.JMSMessageProducerHandle.<init>(JMSMessageProducerHandle.java:129)
at com.ibm.ejs.jms.JMSSessionHandle.createProducer(JMSSessionHandle.java:1777)
at com.ibm.mq.http.BaseConnectionManager.getMessageProducer(Unknown Source)
|
These events are accompanied by a SystemErr.log stacktrace like this:
Code: |
[6/9/08 17:30:58:452 EDT] 0000001b SystemErr R java.lang.NullPointerException
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.ejs.jms.JMSMessageProducerHandle.enlist(JMSMessageProducerHandle.java:797)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.ejs.jms.JMSMessageProducerHandle.send(JMSMessageProducerHandle.java:1168)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.mq.http.connectionmanager.WMQQueueConnectionManager.put(Unknown Source)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.mq.http.MQHTTPServlet.doPost(Unknown Source)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:989)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:501)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:464)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1455)
[6/9/08 17:30:58:453 EDT] 0000001b SystemErr R at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:113)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
[6/9/08 17:30:58:454 EDT] 0000001b SystemErr R at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)
|
Also, I should note that seeing this exception goes hand-in-hand with the message not making it to the queue and an MQHTTP50001 being returned to my test client.
Quote: |
Are you using the MLP (Message Listener Port) in WAS 6.1, or have you deployed the MQ 6 JCA Resource Adapter? The MLP is the recommended way to connect WAS 6.x to MQ, so I would suggest using this.
If you have any server logs I can look at I'd be interested to see them.
Cheers,
Matt Whitehead
WMQ Bridge for HTTP |
I have responded to your email address with a lot more detail.
THANK YOU for looking into that and helping me understand what may be happening.
Cheers,
Stefan _________________ Stefan Sievert
IBM Certified * WebSphere MQ |
|
Back to top |
|
 |
is_whchong |
Posted: Sun Sep 14, 2008 10:31 pm Post subject: |
|
|
Newbie
Joined: 14 Sep 2008 Posts: 1
|
Hi Stefan & Matthew,
Would you please advise the way to solve this problem? I've encountered the same issue under multi-thread.
Thanks & Regards,
Kent |
|
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
|
|
|
|