Rick,

I've discussed this with the mainframe developers (I'm one of the
developers on the MQ distributed products) and understand they have fixed a
number of problems in this area recently (I assume 5.3). The 390 product
has a couple of additional complications in this area (mark skip backout &
get with signal), and I think that all that might be required on the
distributed platforms is to avoid only waking a single waiter if the
waiters buffer is too small and doesn't want to accept a truncated message.
It might be sensible to awaken a waiter with a big enough buffer in
preference to waking both the waiter with a small buffer and the waiter
with a big buffer in my earlier example, but I'll make that decision when I
look at the code in detail.

It's now too late for this change to get in the first distributed 5.3
deliverable and I'd expect it to appear in the first 5.3 CSD. If you want
the fix earlier then you'll need to raise a problem with the support center
and the service team should be able to port the fix back to 5.2.

Andy.

Richard Brunette <[EMAIL PROTECTED]>@AKH-WIEN.AC.AT> on
05/30/2002 04:03:32 PM

Please respond to MQSeries List <[EMAIL PROTECTED]>

Sent by:    MQSeries List <[EMAIL PROTECTED]>


To:    [EMAIL PROTECTED]
cc:
Subject:    Re: Problem receiving messages from a restarted client
       application.



This application was simply using an indefinite wait. As I said we have
convinced the application developers to make a number of changes that with
provide a better design for their business problem. These changes have
greatly reduced the frequency that the application will be exposed to this
problem. However the problem still exists and is the type of issue that is
going to hit you and not necessarily be easily identified. The exposure
risk is going up with more java development with unspecified message
lengths.

As Andy says (and testing proves) the message isn't locked or considered
part of a unit of work. It is available to any get that comes along. It
just will not be delivered to a get that is already waiting for it, unless
there is another message that becomes available to tell the queue manager
to wake up the get that is waiting. I'm well aware of receiving the portion
of the message that fits in the buffer as Dennis mentions and even
questioned the idea of the message being locked myself, but its just not
the case.

It sounds like Andy understands both the issue and why the internals of the
queue manager code is causing this behavior. I'm assuming, from your many
past posts to this list Andy, that your one of the IBMers on this list with
detailed knowledge of the internal code-base of the mainframe queue
managers.

Thanks Pavel, Dennis, and Mike for you comments. Andy I'd like to hear any
further information on what will be done or what is to the expected
behavior of the queue manager and the surrogates in this situation. In
addition a co-worker here has sent IBM and ETR on this issue.

Rick

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Reply via email to