ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Java / JMS » JMS issue

Post new topic  Reply to topic
 JMS issue « View previous topic :: View next topic » 
Author Message
Al Pacino
PostPosted: Fri Mar 16, 2007 7:40 am    Post subject: JMS issue Reply with quote

Centurion

Joined: 19 Aug 2005
Posts: 114

I have a question here , I modified JMS-using-MQ processing to match the unit-of-work for the database and jms calls. Previously, each jms message was committed one-by-one, but the database changes were all committed together at the end of the transaction. If the transaction timed out, then the messages still had already been sent , but the database changes were rolled back. I changed the JMS part to keep the queue connection open and to commit the changes all together at the end of the transaction.

Works fine as long as you don’t try to send more than 255 messages in one transaction. After that it fails with a queue open error on message 256.


Could be a JMS problem, or it could be something in MQ itself.

All we get is the following JMS exception when it tries to create the message sender for message 256:

09:32:12.0276|ExecuteThread: '14' for queue: 'weblogic.kernel.Default'|JmsDAO|getKeepConnectionLive()|DEBUG|keeplive=true

09:32:12.0338|ExecuteThread: '14' for queue: 'weblogic.kernel.Default'|JmsDAO|sendTransactedMessage|SYSTEM|javax.jms.ResourceAllocationException: MQJMS2008: failed to open MQ queue MQSI.BRMAINT

at com.ibm.mq.jms.MQQueueServices.getQueueOpenException(MQQueueServices.java:415)


1) Do you know (if there is) a way to crank up logging for MQ itself so I can get a more detailed explanation of the underlying error?

2) 255 must be an implicit queue limit of some kind. Are you aware of any implicit limits on uncommitted messages?
_________________
"We can't solve problems by using the same kind of thinking we used
when we created them."
Back to top
View user's profile Send private message
HubertKleinmanns
PostPosted: Fri Mar 16, 2007 7:52 am    Post subject: Reply with quote

Shaman

Joined: 24 Feb 2004
Posts: 732
Location: Germany

Al Pacino,

I do not know, if there is a JMS limit, but in MQ there is a QMgr attribute, called MAXUMSG. This attributeis normally set to 10000, but may be changed. Look at the QMgr configuration.

Additionally I would expect, that 0ne JMS transactions leads to several MQ operations, and so the values may differ.

When MQ does a rollback, you should get the reason code 2024 (MQRC_SYNCPOINT_LIMIT_REACHED) in your application log.
_________________
Regards
Hubert
Back to top
View user's profile Send private message Visit poster's website
EddieA
PostPosted: Fri Mar 16, 2007 10:57 am    Post subject: Reply with quote

Jedi

Joined: 28 Jun 2001
Posts: 2453
Location: Los Angeles

It also could be that you've run out of log space to hold the uncomitted messages.

In your exception handler, check for a linked exception, and if there is one, grab the MQ return/reason codes from it. That will tell you exactly what the issue is.

Cheers.
_________________
Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
Al Pacino
PostPosted: Fri Mar 16, 2007 11:43 am    Post subject: Reply with quote

Centurion

Joined: 19 Aug 2005
Posts: 114

Thanks guys , it was the MaxHandle on the QM level.
_________________
"We can't solve problems by using the same kind of thinking we used
when we created them."
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Mar 16, 2007 8:50 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Al Pacino wrote:
All we get is the following JMS exception when it tries to create the message sender for message 256

Thanks guys , it was the MaxHandle on the QM level.

Sorry but you treated the symptom and not the cause. All I have to say here is design flaw. You need to use an anonymous sender/producer (hint it gets defined without destination) and then pass the destination in on the send call.
This way your resource usage is minimal.

Also keep the session open during the whole transaction. Don't do a session close at each message. It's all about maximizing the usage of your resources...

Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ Java / JMS » JMS issue
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.