|
The following describes some ways you can use the SEND, OPERATOR
SEND, and LISTBC exits to customize command processing. - Restrict certain users from using the SEND or LISTBC commands
or the OPERATOR SEND subcommand
The initialization exit can check
the user ID and decide, based on your own criteria, to cancel the
command. The exit can set a return code of 16 and return to the command
or subcommand processor.
It can also set the appropriate bit in the copy of the SEND PARMLIB
control block to prevent an individual user from issuing the command.
For example, you can use the USERSEND or OPERSEND bits in the control
block to inactivate the SEND command or the OPERATOR SEND subcommand
for that user.
- Change the operands the user specified on the command
For various
reasons, you may want to change the operands a user specified. For
example, you may want to restrict certain users from using the SEND
command to: - Send messages to certain users
- Store messages
For the OPERATOR SEND subcommand, you may want only certain
users to list, delete, or store notices in the broadcast data set.
To
change the operands a user specified on the command, use the initialization
exit. The exit can: - Scan the command buffer and decide, based on your own criteria,
to change the command the user issued
- Obtain storage for a new command buffer
- Build the new command buffer
- Update the key, length, and data fields for the new command buffer
as follows:
- Key
- X'02'
- Length
- the length of the new command buffer
- Data
- the address of the new command buffer
- Set a return code of 0 and return control to the command or subcommand processor
The exit must not change the command buffer it receives.
It must build a new command buffer and return the address of the
new command buffer to the invoking command. For more information
about the command buffer, see Command buffer.
You
must also write a termination exit to free the storage the initialization
exit obtains for the new command buffer.
- Ensure that users receive your installation's notices and their
messages (mail) when they log on to TSO/E
When users log on to
TSO/E, LISTBC invokes the initialization exit. The exit receives LISTBC
indicator flags that indicate whether the user specified NOTICES,
NONOTICES, MAIL, or NOMAIL. The initialization exit can check the
bit settings of the flags and change them so that LISTBC displays
any notices and mail. For more information about the LISTBC indicator
flags, see Table 1.
- Allocate a user log data set
If you are using user logs and
a user either issues the LISTBC command or logs on and specifies MAIL,
LISTBC determines whether the user's user log has been allocated.
If the log data set has not been allocated, the LISTBC command processor allocates
it. LISTBC allocates both sequential data sets and members of a PDS
with the following data set attributes: - LRECL
- 150
- BLKSIZE
- 1500
- Primary tracks
- 1
- Secondary tracks
- 2
If the MSGPROTECT operand is set to ON, the
following data set attributes are used: - LRECL
- 232
- BLKSIZE
- 2320
- Primary tracks
- 1
- Secondary tracks
- 2
For members of a PDS, LISTBC uses a value of
20 for the number of directory blocks.
If the default attributes
that LISTBC uses are unsuitable for some or all of your installation's
users, use the LISTBC pre-allocate exit to allocate the user log data
set. The pre-allocate exit can allocate the user log, set a return
code of 4, and return to the LISTBC command processor. The
return code of 4 indicates to LISTBC that it should not allocate the
user log.
If you allocate a user log as a member of a PDS, consider
the LRECL you use for the PDS. You must ensure that the LRECL is adequate
to prevent messages from being truncated. This is particularly important
if you use the exits to append information to messages that are stored.
However, the LRECL of the PDS must not exceed 150. If the MSGPROTECT
operand is ON, the LRECL of the PDS must not exceed 232.
|