In the TSO versions of the application, the get-mail and display-message functions are performed by
the same program (CSQ4TVD2). In the CICS version of
the application, these functions are performed by separate programs (CSQ4CVD2 and CSQ4CVD3).
The Mail Awaiting panel (CSQ4VDP2 for TSO, VD2 for CICS ; see Figure 1 for an example)
shows all the messages that are on the user's mail queue. To create this list, the program uses the
MQGET call to browse all the messages on the queue, saving information about each one. In addition
to the information displayed, the program records the MsgId and
CorrelId of each message.Figure 1. Example of a panel showing a list of waiting messages
--------------------- IBM MQ for z/OS Sample Programs ------- ROW 16 OF 29
COMMAND ==> Scroll ===> PAGE
USERID - NTSFV02
Mail Manager System QMGR - VC4
Mail Awaiting
Msg Mail Date Time
No From Sent Sent
16
16 Deleted
17 JOHNJ 01/06/1993 12:52:02
18 JOHNJ 01/06/1993 12:52:02
19 JOHNJ 01/06/1993 12:52:03
20 JOHNJ 01/06/1993 12:52:03
21 JOHNJ 01/06/1993 12:52:03
22 JOHNJ 01/06/1993 12:52:04
23 JOHNJ 01/06/1993 12:52:04
24 JOHNJ 01/06/1993 12:52:04
25 JOHNJ 01/06/1993 12:52:05
26 JOHNJ 01/06/1993 12:52:05
27 JOHNJ 01/06/1993 12:52:05
28 JOHNJ 01/06/1993 12:52:06
29 JOHNJ 01/06/1993 12:52:06
From the Mail Awaiting panel the user can select one message and display the contents of the
message (see Figure 2 for an example). The program uses the MQGET call to
remove this message from the queue, using the MsgId and CorrelId
that the program noted when it browsed all the messages. This MQGET call is performed using the
MQGMO_SYNCPOINT option. The program displays the contents of the message, then declares a syncpoint:
this commits the MQGET call, so the message now no longer exists.Figure 2. Example of a panel showing the contents of a message
--------------------- IBM MQ for z/OS Sample Programs ---------------------
COMMAND ==>
USERID - NTSFV02
Mail Manager System QMGR - VC4
Received Mail
Mail sent from JOHNJ at VC4
Sent on the 01/06/1993 at 12:52:02
------------------------------------ Message -------------------------------
| HELLO FROM JOHNJ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
'----------------------------------------------------------------------------'
An obvious extension to the function provided by the Mail Manager is to give the user the option
to leave the message on the queue after viewing its contents. To do this, you would have to back out
the MQGET call that removes the message from the queue, after displaying the message.