What the sample program does
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.