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 » MDB stops picking up msgs - clue in AMQERR01 ??

Post new topic  Reply to topic
 MDB stops picking up msgs - clue in AMQERR01 ?? « View previous topic :: View next topic » 
Author Message
teal
PostPosted: Thu May 26, 2005 6:14 pm    Post subject: MDB stops picking up msgs - clue in AMQERR01 ?? Reply with quote

Acolyte

Joined: 15 Dec 2004
Posts: 66

Okay,
i need some help really bad
.. but this seems to be an very difficult issue.
first of all my Environment is Linux, WAS 5.1.1.4 with WMQ 5.3.9

When putting a heavy load onto a queue that is being watched by an MDB that has 40 connections/sessions in the pool I do not see an errors in my application log, but I do see some errors in the SystemOut.log
they are all the same - stale connection exception for jdbc/hgdb or a sqlException invalid connection- closed. Nothing mentioning JMS/MQ/Message driven beans ...nothing only DB stuff.

oh by the way I do not have XA enabled in the Admin console and I have set the MDB to "not supported" in the EJB deployment descriptor.

the main issue is.. that all the sudden the MDB's stop picking up messages and I see messages start piling up in that queue.

I check the logs..nothing.
I check the WAS Admin console, Message listeners are still running.
I check Tivoli Performaqnce viewer, and all the connections are sitting in the pool not being used. Why?

The only clue I have is that I saw only two messages in my AMQERR01.log that said AMQ7469 transaction rollback..... But these messages are all less than 1 MB

my QM.ini is
size 4095
primary 4
secondary 3

the only way to get things going again is to bounce the WAS.

the database has been our nemisis on this project all along, but now..

you guys know how it is...
it's always our job to prove it's not MQ.

So, is the JDBC stuff causing this? or is this causing the JDBC errors?



I was thinking of changing QM.ini ans make log files to like 51 prim and 12 secon, restart MQ and test. Afterwards, possiblly rebuild the queue manager and make the log file max size and test..what do you guys think? couls o many messages hitting the queue at once be causing this regardless of the message size? and it is unrealted to the JDBC errors?

Any help/advice is greatly appreciated.

thank you
Back to top
View user's profile Send private message
bower5932
PostPosted: Fri May 27, 2005 5:04 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Aug 2001
Posts: 3023
Location: Dallas, TX, USA

Quote:
The only clue I have is that I saw only two messages in my AMQERR01.log that said AMQ7469 transaction rollback..... But these messages are all less than 1 MB


My guess is that you are never committing the messages that your MDB is receiving. This wouldn't really be an error that would show up in the logs that you are mentioning.
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger
jefflowrey
PostPosted: Fri May 27, 2005 5:36 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

The other possibility is a poison message. But I'd expect maybe a lot more rollback error messages in that case.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
bower5932
PostPosted: Fri May 27, 2005 6:15 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Aug 2001
Posts: 3023
Location: Dallas, TX, USA

You could also run the amqsbcg program against your queue to see what the backout count of the messages on the queue are. That would let you know if they were being delivered and backed out.
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger
teal
PostPosted: Fri May 27, 2005 8:28 am    Post subject: Reply with quote

Acolyte

Joined: 15 Dec 2004
Posts: 66

Thanks for the replies fellas,

I have already set the max retries on the Msg Listener to 5 and I created a BO queue for the main queue the MDB is listening on with a threshold of 2.

I have yet to see a message get put into the BO queue.

I'm starting to think the amq7469 is more pointing to a "long running transaction"

but like I said, I have XA turned off.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Fri May 27, 2005 8:38 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

I think you are in a maze of twisty little transaction boundaries, all different.

Try mapping out the transactions involved (if the development group used UML, they may already have an interaction diagram that will be a big help).

Also, try enabling WebSphere tracing on the MDB classes and see what you see.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
teal
PostPosted: Thu Jun 02, 2005 3:33 pm    Post subject: Reply with quote

Acolyte

Joined: 15 Dec 2004
Posts: 66

things look fine in terms of MQ/MDB/JMS
I did raise the level of logs and have not seen anything.


BUT.
still see the same errors in the systemout.log



Quote:

39b1fd13 ConnectionEve A J2CA0056I: The Connection Manager received a fatal connection error from the Resource Adaptor for resource jdbc/SDB. The exception which was received is com.ibm.websphere.ce.cm.StaleConnectionException: A communication error has been detected. Communication protocol being used: UWReply.fill(). Communication API being used: recvBuff(). Location where the error was detected: ReasonCode=71. Communication function detecting the error: *. Protocol specific error codes(s) TCP/IP SOCKETS



Quote:

39b87d13 WSRdbManagedC W DSRA0080E: An exception was received by the Data Store Adapter. See original exception message: com.ibm.db2.jcc.b.SqlException: invalid operation: connection closed


has anyone seen this before. If I let it run forever, it eventually startes throwing tons of these and the MDBs even stop picking up message..
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Jun 02, 2005 6:46 pm    Post subject: Reply with quote

Grand High Poobah

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

have you checked your deployment descriptor.
Does the onMessage() method of your MDB have the transactional attribute:
required new transaction ??

Enjoy
Back to top
View user's profile Send private message Send e-mail
teal
PostPosted: Fri Jun 03, 2005 5:15 am    Post subject: Reply with quote

Acolyte

Joined: 15 Dec 2004
Posts: 66

thanks for the reply saper.

I have it set to "NOT SUPPORTED"
If I'm not mistaken, you can only set MDB's to NOT SUPPORTED or REQUIRED. Session beans etc can use requires new.

here is the source of the EJB DD. I have all the MDB's grouped together under not supported.

Quote:

...
<method>
<ejb-name>MMDB9</ejb-name>
<method-name>onMessage</method-name>
<method-params>
<method-param>javax.jms.Message</method-param>
</method-params>
</method>
<method>
<ejb-name>MMDB10</ejb-name>
<method-name>onMessage</method-name>
<method-params>
<method-param>javax.jms.Message</method-param>
</method-params>
</method>
<method>
<ejb-name>MMDB11</ejb-name>
<method-name>onMessage</method-name>
<method-params>
<method-param>javax.jms.Message</method-param>
</method-params>
</method>
<method>
<ejb-name>MMDB12</ejb-name>
<method-name>onMessage</method-name>
<method-params>
<method-param>javax.jms.Message</method-param>
</method-params>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>



what are you thinking is happening here?
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Jun 03, 2005 10:02 am    Post subject: Reply with quote

Grand High Poobah

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

Running an MDB with transaction not supported and not defining a transaction is an anti pattern.

You really need to specify some kind of transaction on your MDB.
Ideally each message should be it's own transaction.

Enjoy
Back to top
View user's profile Send private message Send e-mail
teal
PostPosted: Fri Jun 03, 2005 12:11 pm    Post subject: Reply with quote

Acolyte

Joined: 15 Dec 2004
Posts: 66

hey thanks again for the post.

Code:

Running an MDB with transaction not supported and not defining a transaction is an anti pattern.


are you saying that since I have the MDB set to 'not supported' in the ejb deployment descriptor, I should set code to do manual transaction handling i.e. use BMP and use setRollbackOnly() etc)?

I think this is what you mean??

in any reagard, this doesnt get me any closer to this staleconnection mystery..

thanks.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Jun 03, 2005 5:33 pm    Post subject: Reply with quote

Grand High Poobah

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

The design pattern for the MDB is inherently transacted.
Now if your transaction gets too big for the logs you will do a rollback and the MDB will stop working.....

Enjoy
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 » MDB stops picking up msgs - clue in AMQERR01 ??
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.