Sorry must be misinterpreting what your problem is. When you stop MQ via
the SCM it stops your queue managers i.e. issues an internal "endmqm
MYQMGR" if you have MQGMO_FAIL_IF_QUIESCING coded then you should not time
out as your MQGET will fail with RC=2161 in your app which can then
gracefully exit.

Regards
Tim A



                      "Steve D.
                      Perkins"                 To:       [EMAIL PROTECTED]
                      <[EMAIL PROTECTED]>         cc:
                      Sent by: MQSeries        Subject:  Re: MQGet Blocked Read
                      List
                      <[EMAIL PROTECTED]
                      N.AC.AT>


                      04/08/2003 14:00
                      Please respond to
                      MQSeries List





Tim,

Yep, sure did. MQGMO_FAIL_IF_QUIESCING happens when the queue manager is
shutting down.  That's not the problem.  The problem is terminating a WIN32
Client service gracefully when the service is in a blocked MQGET read.  It
appears there isn't any way except to wait or issue a ::TerminateThread
which works but generates a ton of memory leaks.  It would be nice if IBM
would code an event handle that could be included as a parameter when
issuing a MQGET.  Then when signaled the MQGET would return out of the
read.
Another alternative is simply to "PUT" a message onto the "GET" queue prior
to shutdown.  This will break the blocked MQGET read as a message is
readily
available.  I'm looking at that method as the best means of gracefully
shutting down.  However, I don't know how well that method will be received
since I'm only supposed to be receiving messages from that queue.
Therefore
the hunt for an additional solution goes on....

Thanks for the reply!

Steve

-----Original Message-----
From: MQSeries List [mailto:[EMAIL PROTECTED] Behalf Of Tim
Armstrong
Sent: Sunday, August 03, 2003 8:47 PM
To: [EMAIL PROTECTED]
Subject: Re: MQGet Blocked Read

Did you code MQGMO_FAIL_IF_QUIESCING? Note you should also code the MQOO_
equivalent etc.

Regards
Tim A



                      "Steve D.
                      Perkins"                 To:
[EMAIL PROTECTED]
                      <[EMAIL PROTECTED]>         cc:
                      Sent by: MQSeries        Subject:  MQGet Blocked Read
                      List
                      <[EMAIL PROTECTED]
                      N.AC.AT>


                      03/08/2003 08:41
                      Please respond to
                      MQSeries List





Hello,

        I have an application which one of the prerequisites is to call
MQGET with
a minimum 120 second WaitInterval!  This application is using MQSeries 5.3
client on a WIN32 platform and runs as a service.  The minimum 120 second
interval is there to supposedly keep the bandwidth down to a minimum.
However, the problem is with WIN32 the Service Control Manager times out
and
cannot shut down the service in a timely fashion.  MQGET will only return
if
the WaitInterval has expired or a message is received.  My only solution is
to put a message onto the "GET Queue" prior to shutdown to force an exit
out
of the blocked read.  I was hoping for a more elegant solution on WIN32.
Are there any other ways to "signal" a blocked MQI MQGET on Win32 to exit?

Thanks much!

Steve

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

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