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 » ignoring BackoutCount in IBM JMS - MQMessageConsumer

Post new topic  Reply to topic
 ignoring BackoutCount in IBM JMS - MQMessageConsumer « View previous topic :: View next topic » 
Author Message
dgolding
PostPosted: Wed Aug 20, 2008 5:32 am    Post subject: ignoring BackoutCount in IBM JMS - MQMessageConsumer Reply with quote

Yatiri

Joined: 16 May 2001
Posts: 668
Location: Switzerland

I've tried setting the BOTHRESH on the queue to a silly high value but the application still rejects the message. Is this Redelivery Count or whatever the parameter is set with a default value in JMS?
Back to top
View user's profile Send private message Visit poster's website
fjb_saper
PostPosted: Wed Aug 20, 2008 3:02 pm    Post subject: Re: ignoring BackoutCount in IBM JMS - MQMessageConsumer Reply with quote

Grand High Poobah

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

dgolding wrote:
I've tried setting the BOTHRESH on the queue to a silly high value but the application still rejects the message. Is this Redelivery Count or whatever the parameter is set with a default value in JMS?

I have seen the application honoring the BOTHRESH but it does need to check it against the Redelivery Count on the message.

WAS will move the message to the Backout/DLQ. On standalone apps you might have to implement this yourself. Checking the BOTHRESH might involve the MS0B package...


_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
dgolding
PostPosted: Thu Aug 21, 2008 2:54 am    Post subject: Reply with quote

Yatiri

Joined: 16 May 2001
Posts: 668
Location: Switzerland

Hi, thanks for that fjb_saper. What I can't understand is that the developer insists that he has not coded the backout behaviour, and here's a comment I found in the ibm.software.websphere.mq.programming

Quote:
The queue manager will NEVER do anything with a message
based on the backout threshold count. Everything must be dealt with at
the application level.


(From our own illustrious Roger Lacroix no less)

So who is doing it? It was always my understanding that all MQ does is increment the backout count, and everything else is done by application itself, but is JMS being clever here? It's not even a RFH2 message...
Back to top
View user's profile Send private message Visit poster's website
JLRowe
PostPosted: Thu Aug 21, 2008 4:58 am    Post subject: Reply with quote

Yatiri

Joined: 25 May 2002
Posts: 664
Location: South East London

Are you running in J2EE?

A message driven bean has it's own settings, it ignores the MQ max redelivery count (since not all JMS providers have this feature)
Back to top
View user's profile Send private message Send e-mail
fjb_saper
PostPosted: Thu Aug 21, 2008 6:22 am    Post subject: Reply with quote

Grand High Poobah

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

dgolding wrote:
Hi, thanks for that fjb_saper. What I can't understand is that the developer insists that he has not coded the backout behaviour, and here's a comment I found in the ibm.software.websphere.mq.programming

Quote:
The queue manager will NEVER do anything with a message
based on the backout threshold count. Everything must be dealt with at
the application level.


(From our own illustrious Roger Lacroix no less)

So who is doing it? It was always my understanding that all MQ does is increment the backout count, and everything else is done by application itself, but is JMS being clever here? It's not even a RFH2 message...

2 experiences I have seen work
a) WAS MDB just set the bothresh and everything is automatic. No BOQ means the message goes to the DLQ with RC 2362
b) Standalone JMS on solaris. Every receive brings up an error. Problem is the app did not have the rights to post to the SYSTEM.DEAD.LETTER.QUEUE which was the qmgr's DLQ, and the bothresh < redelivery count. So make sure each JMS app has the authority to post to the DLQ.

Hope it helps some.
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
dgolding
PostPosted: Wed Sep 17, 2008 3:33 am    Post subject: Reply with quote

Yatiri

Joined: 16 May 2001
Posts: 668
Location: Switzerland

An update on this, if anybody is interested:

I opened a ticket with IBM and apparently it's a feature If you open an alias queue and get a message with a Backout count > 0 MQ tries to read the backout threshold from the base local queue. If (as we do) the application has no authority to the base queue it assumes the default of 20 and the default backout queue as the System DLQ - so the put fails with a 2035.

so far, so good - but not ideal as all the Backout info is "hidden" from the application as per most normal security rules (maybe we could give the app INQ authority) but doesn;t explain when we gave ALL authority to the local queue to the App, it still tried (and failed) to put the poison message on the DLQ!

This could well be an application error and I will chase up with developer just as soon as he comes back off holiday
Back to top
View user's profile Send private message Visit poster's website
fjb_saper
PostPosted: Wed Sep 17, 2008 8:02 am    Post subject: Reply with quote

Grand High Poobah

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

dgolding wrote:
An update on this, if anybody is interested:

I opened a ticket with IBM and apparently it's a feature If you open an alias queue and get a message with a Backout count > 0 MQ tries to read the backout threshold from the base local queue. If (as we do) the application has no authority to the base queue it assumes the default of 20 and the default backout queue as the System DLQ - so the put fails with a 2035.

so far, so good - but not ideal as all the Backout info is "hidden" from the application as per most normal security rules (maybe we could give the app INQ authority) but doesn;t explain when we gave ALL authority to the local queue to the App, it still tried (and failed) to put the poison message on the DLQ!

This could well be an application error and I will chase up with developer just as soon as he comes back off holiday

The app will need INQ authority for the base queue and POST authority for the DLQ / Backout Q. Remember JMS authority is not just POST but POST+INQ

_________________
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 » ignoring BackoutCount in IBM JMS - MQMessageConsumer
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.