What the sample program does, Customizing the sample program – IBM SC33-1683-02 User Manual

Page 768

Advertising
background image

What the sample program does

The DFH0GNIT sample program:

1. 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.

2. If a flag within GNTRAN_USER_FIELD shows that this is the first invocation for

this timeout:

a. If GNTRAN_PSEUDO_CONV_FLAG indicates that the terminal timed out

during a pseudoconversation, issues EXEC CICS RECEIVE to retrieve the
communications area.

b. Saves the length of the communications area in another field within

GNTRAN_USER_FIELD.

c. Writes the communication area, if any, to a temporary storage queue.

d. Displays a screen asking the user to input his or her password, and sets the

flag indicating that this has been done.

e. Issues EXEC CICS RETURN with TRANSID GNIT and the COMMAREA

option, to continue the timeout process as a pseudoconversation.

3. If this is not the first invocation for this timeout:

a. Recovers the original communication area, if any, from the temporary

storage queue.

b. Checks the password received from the user, and redisplays the timeout

screen with an error message if it is incorrect.

4. 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.

5. If the correct password is entered, DFH0GNIT:

v

Restores the screen contents

v

Restores the cursor position.

If the terminal timed out during a pseudoconversational transaction, DFH0GNIT
also:

v

Restores the communications area of the timed-out transaction

v

Returns with the TRANSID of the next transaction in the interrupted
conversation.

Customizing the sample program

You can write your “good night” program in any of the languages supported by
CICS, with full access to the CICS application and system programming interfaces.

If you customize the supplied program, or write your own “good night” program,
note the following:

v

Like the sample, your program should be pseudoconversational, because it could
be invoked simultaneously for many users (if, for example, many terminals time
out during the lunch period). If your program is conversational, CICS maximum
number of tasks (MXT) could quickly be reached.

When you are continuing your timeout program’s pseudoconversation, always
specify the name of your “good night” transaction (for example, GNIT) as the
next TRANSID. If you do not, CICS does not know that you are still handling the
timeout, and results may be unpredictable.

sample good night program

736

CICS TS for OS/390: CICS Customization Guide

|

|
|
|
|

Advertising