The sample "good night" program is a pseudoconversational COBOL
program named DFH0GNIT. Copy books of the communications area passed to the "good
night" program are supplied in assembler language, COBOL, PL/I, and C.
The names of the supplied program, copy books, and mapset, and the CICSTS31.CICS libraries
in which they can be found, are summarized in Table 46.
The DFH0GNIT sample program:
- Checks that it has been invoked for a terminal timeout, by testing the
GNTRAN_START_TRANSID field of the communications area passed by CICS®. If this contains
anything other than 'CEGN', it quits.
- If a flag within GNTRAN_USER_FIELD shows that this is the first invocation
for this timeout:
- If GNTRAN_PSEUDO_CONV_FLAG indicates that the terminal timed out during
a pseudoconversation, issues EXEC CICS RECEIVE to retrieve the communications
area.
- Saves the length of the communications area in another field within GNTRAN_USER_FIELD.
- Writes the communication area, if any, to a temporary storage queue.
- Displays a screen asking the user to input his or her password, and sets
the flag indicating that this has been done.
- Issues EXEC CICS RETURN with TRANSID GNIT and the COMMAREA option,
to continue the timeout process as a pseudoconversation.
- If this is not the first invocation for this timeout:
- Recovers the original communication area, if any, from the temporary storage
queue.
- Checks the password received from the user, and redisplays the timeout
screen with an error message if it is incorrect.
- If the number of incorrect responses exceeds the maximum specified to
your external security manager, DFH0GNIT returns immediately with TRANSID
CESF, which tries to sign off the userid.
- If the correct password is entered, DFH0GNIT:
- Restores the screen contents
- Restores the cursor position.
If the terminal timed out during a pseudoconversational transaction,
DFH0GNIT also:
- Restores the communications area of the timed-out transaction
- Returns with the TRANSID of the next transaction in the interrupted conversation.

[[ Contents Previous Page | Next Page Index ]]