On 22-Sep-2016 11:49 -0500, Rob Berendt wrote:
Not all jobs in MSGW will show in QSYSOPR. […]
Interactive jobs do NOT go into MSGW when waiting on an inquiry
message. See
(http://archive.midrange.com/midrange-l/201604/msg00330.html)
Testing only the manner in which that HLL default-handler implements
both the sending of an inquiry and then awaiting a reply, is not an
exhaustive test of how the status of all interactive jobs will be
presented when they are awaiting a message. Many inquiries will be sent
to the *EXT program queue, for which the Display Messages panel will be
presented, from which a reply is awaited; per display file [or panel
group] interaction, the job appears with status DSPW.
But just as not all jobs in Message Wait (MSGW) status will use the
QSYSOPR [aka *SYSOPR] Message Queue (MSGQ) to send an inquiry [and from
which to await a reply], not all interactive jobs that are waiting on a
reply to an inquiry must *only* appear as Display Wait (DSPW) status.
Whether an interactive job appears in MSGW depends mostly on awaiting
a reply from an inquiry made to an External Message Queue (*MSGQ), and
then whether or not the inquiry caused a panel [i.e. the Display Program
Messages screen] to appear at the interactive workstation. If no panel
is presented [mostly, if the message does not /break/ to the display due
to the combination of job setting Break Message Handling (BRKMSG) and
the MsgQ setting Delivery (DLVRY) that are established], then the job
will appear in MSGW -- with the msg CPI2404 "Waiting for reply to
message on message queue &2." showing in the status line. If the
interactive job is seen in MSGW, then if the user issues a SysRqs-4 to
Display Message (DSPMSG), then the job will go into DSPW [per
presentation of the Display Messages panel], but the job would still be
awaiting the reply, such that exiting from that panel will return the
job status to MSGW, from the DSPW status.
Review the effects of Job Status value shown in WRKACTJOB after each
Send User Message request, before an answer is supplied.
pgm
dcl &rpyval *char 01
dcl &tomsgq *char 10
dcl &tomsgl *char 10
dcl &brkmsg *char 07
rtvjoba brkmsg(&brkmsg)
chgjob brkmsg(*hold)
rtvusrprf *current msgq(&tomsgq) msgqlib(&tomsgl)
SNDUSRMSG MSGID(CPA32B2) MSGF(QCPFMSG) +
MSGDTA('THE_FILE THE_LIBR ') +
VALUES(*NONE) DFT(*MSGDFT) MSGTYPE(*INQ) +
TOMSGQ(*EXT) MSGRPY(&RPYVAL)
SNDUSRMSG MSGID(CPA32B2) MSGF(QCPFMSG) +
MSGDTA('THE_FILE THE_LIBR ') +
VALUES(*NONE) DFT(*MSGDFT) MSGTYPE(*INQ) +
TOMSGQ(&tomsgl/&tomsgq) MSGRPY(&RPYVAL)
chgjob brkmsg(&brkmsg)
endpgm
As an Amazon Associate we earn from qualifying purchases.