z/OS TSO/E Customization
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Writing exits for the SEND, OPERATOR SEND, and LISTBC commands

z/OS TSO/E Customization
SA32-0976-00

TSO/E provides many exits you can use to customize how the SEND and LISTBC commands and the OPERATOR SEND subcommand handle the sending, storing, and retrieving of messages. The exits for SEND and OPERATOR SEND are:
  • Initialization - set up the environment for later exits
  • Pre-display - perform processing before SEND displays the message to the target user
  • Pre-save - perform processing before SEND opens the user log to store a message
  • Failure - perform processing whenever SEND detects an I/O error on the user log
  • Termination - perform clean-up processing prior to SEND completion
The exits for LISTBC are:
  • Initialization - set up the environment for later exits
  • Pre-list - perform processing before LISTBC associates (allocates) the user log data set name to a ddname and opens the user log data set
  • Pre-allocate - create the user log data set
  • Pre-read - perform processing before LISTBC reads a message
  • Pre-display - perform processing before LISTBC displays the message to the user
  • Failure - perform processing whenever LISTBC detects an I/O error on the user log
  • Termination - perform clean-up processing prior to LISTBC completion

The SEND and LISTBC commands and the OPERATOR SEND subcommand do not share exits. For example, there are three initialization exits; one for SEND, one for LISTBC, and one for OPERATOR SEND.

You can use the different exits to customize SEND and LISTBC processing for your users. If you use only the broadcast data set to store messages, you can use only the initialization and termination exits to customize SEND and LISTBC processing. If you use user logs to store messages, you can use the other exits in addition to the initialization and termination exits to customize the use of user logs for individual users.

The following highlights some ways you can use the initialization exits:
  • Restrict certain users from using a command
  • Change the operands a user specifies on the command
  • Change installation defaults for SEND and LISTBC processing that you either specified in IKJTSOxx or that are defaulted by the system if you did not update IKJTSOxx
  • Ensure that users receive notices and mail when they log on to TSO/E
If you are using user logs, you can use the different initialization exits and the other SEND, OPERATOR SEND, and LISTBC exits to:
  • Change the name of the data set SEND uses to store a message
  • Perform your own file I/O to store messages in or retrieve messages from the user log
  • Allocate a user log data set instead of having LISTBC allocate the user log
  • Add information to a message that SEND stores
  • Compress messages that SEND stores and decompress the message before LISTBC displays the message to the target user
  • Format messages that are displayed to support special features of output devices

You can use the termination exits to perform clean-up or special processing prior to the command processor's completion. Depending on the processing the other exit routines perform, you may not need a termination exit for the command or subcommand. For more information about how you can use the exits, see Possible uses.

You use the SEND PARMLIB parameter in IKJTSOxx to specify installation defaults for SEND and LISTBC processing and to implement the use of user logs on your system. For more information about defining installation defaults and setting up user logs, see:

When you IPL your system, a SEND PARMLIB control block (IKJEESCB) is created. The control block contains the installation defaults you specify in IKJTSOxx. If you do not define installation defaults in IKJTSOxx, a default control block is created that contains default values for SEND, OPERATOR SEND, and LISTBC. Each SEND, OPERATOR SEND, and LISTBC exit receives the address of a copy of the control block IKJEESCB.

In the control block, the EESCB_LOGNAME field contains the name of the data set you are using to store SEND messages. The name can be the broadcast data set or the name of a user log.

Note: The names referenced for the fields in the control block (for example, EESCB_LOGNAME) are obtained from the IKJEESCB DSECT mapping as provided in SYS1.AMODGEN.

The initialization and termination exits receive control regardless of the value in the EESCB_LOGNAME field. However, SEND, LISTBC, and OPERATOR SEND invoke the other exits only if EESCB_LOGNAME is the name of a user log.

The following topics describe when each SEND, OPERATOR SEND, and LISTBC exit receives control. For more information about how the exits' return codes affect SEND and LISTBC processing, see Return specifications.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014