Previous topic |
Next topic |
Contents |
Contact z/OS |
Library |
PDF
MVS Message Service (MMS) Exits z/OS MVS Installation Exits SA23-1381-00 |
|
Topics for This Exit Appear as Follows:
The MVS™ message service (MMS) enables you to translate U.S. English messages into other languages. If you are routing system messages to a TSO/E extended MCS console, TSO/E will display translated messages in the primary language associated with the TSO/E session. If MMS is active, users of extended MCS consoles on TSO/E can select available languages for message translation and the system can display translated messages on the user's screen. TSO/E terminal users can also receive on their terminals translated TSO/E messages and the translated messages of any application that directs its messages to TSO/E and uses MMS services directly or through TSO/E services. To receive translated messages on TSO/E terminals, you must have TSO/E Version 2.2 installed on your system. MMS provides two installation exit points that allow you to modify
MMS processing. The MMS exits are invoked when application programs
issue macros to request the following user functions:
For information on MMS and MMS user functions, see z/OS MVS Programming: Assembler Services Guide. For information on MMS macros, see z/OS MVS Programming: Assembler Services Reference ABE-HSP. There are two MMS exits: the MMS preprocessing exit and the MMS postprocessing exit. The MMS preprocessing exit is invoked before MMS processes the user function. The MMS postprocessing exit is invoked after MMS processes the user function. The MMS preprocessing exit can be used to:
The MMS postprocessing exit can be used to:
Installing the Exit RoutinesThe MMS exits must reside in an APF-authorized load library included in the LNKLST concatenation. Statements that identify either an MMS preprocessing exit routine, an MMS postprocessing exit routine, or both, must be specified in the appropriate MMSLSTxx member of SYS1.PARMLIB. In
MMSLSTxx, do the following on an EXIT statement:
For example, to identify both an MMS preprocessing exit
(MMSEXIT1) and an MMS postprocessing exit (MMSEXIT2) in an MMSLSTxx
parmlib member, specify:
No more than two MMS exit routines can be specified in an MMSLSTxx parmlib member. For more information on the MMSLSTxx parmlib member, see z/OS MVS Initialization and Tuning Reference. For general instructions on installing an exit routine, see Link editing an Installation Exit Routine into a Library. Replacing
the Exit Routines: To replace an MMS exit routine when MMS
is active, you must either:
For more information on the SET MMS command, see z/OS MVS System Commands. Exit Routine EnvironmentThe
exit routines receive control in the following environment:
Exit Recovery: MMS provides a functional recovery routine (FRR) to protect the exits. If the MMS exit routine abends, the system will shut down MMS. The system recovery routine will request an SDUMP that can be used by the installation to debug the exit routine. Exit Routine ProcessingThe MMS preprocessing exit routine, if one is defined, is invoked before MMS processes the input parameter block (and its related data areas). The MMS postprocessing exit is invoked immediately after MMS processes the input parameter block but before the block has been copied back to the caller's address space. The system passes the address of the input parameter block to the exits in word 1 of the exit routine parameter list (pointed to by register 1). For message translation, the input parameter block is a message input/output block (MIO), which is mapped by the CNLMMIO macro. For a language query, the input parameter block is a language query block (LQB), which is mapped by the CNLMLQB macro. The exit routines can modify these blocks as needed. If your installation defines MMS exits, MMS will invoke the exits for both the message translation and language query functions. The system indicates the type of function for which the exit has been invoked in register 0 with one of the following codes:
Message Translation: The MMS exits are invoked each time an application invokes MMS with a request to translate a message (register 0 is set to function code 1). If you code MMS exit routines to modify MMS translation, you will probably modify translations of selected messages. For the majority of MMS translations, the exit routines will allow the translations to occur without modification (as if the exit routines did not exist). Allowing
MMS Translations to Occur: To allow MMS translation of a message
to occur, the exit routines simply return control to the system:
Modifying MMS Translations: When you want to modify
MMS translations, use the preprocessing exit routine. The MMS preprocessing
exit is invoked before MMS translates a message. The exit
routine can examine the input message text (pointed to by the MIO
control block) and do one of the following:
Using the Preprocessing Exit: To replace
or prevent MMS translations of selected messages, code the preprocessing
exit routine to set the exit processing indicator to a nonzero value
and do one of the following:
The exit routine must return a zero return code in register 15. Otherwise, MMS will terminate the translation request. With one exception, the postprocessing exit routine (if one is defined) will be invoked even when MMS translation is bypassed. The exception is when the preprocessing exit routine indicates an error (by placing a value greater than 8 in a fullword pointed to by word 4 of the exit parameter list). See Return Specifications (Using Words 4 and 5) for more information. Using the Postprocessing Exit: The MMS postprocessing exit (if one is defined) is invoked after MMS has translated a message, but before the message is returned to the end user. Like the MMS preprocessing exit routine, the MMS postprocessing
exit routine can examine the input message parameters and place installation-preferred
message text in the message output area. Because it is invoked after
MMS message translation has occurred, the MMS postprocessing exit
routine cannot bypass MMS processing. However, the postprocessing
exit routine can do one of the following:
Language Query: The MMS exits are invoked when MMS receives a query to determine which languages are available for message translation (register 0 is set to function code 4). When
invoked during a language query, an MMS exit could:
Programming ConsiderationsUsing
Information in the Exit Parameter List:
Other Considerations:
Macro Instructions and Restrictions: The exit routines can only use services that run in cross-memory mode. See z/OS MVS Programming: Assembler Services Reference ABE-HSP for information on services that run in cross-memory mode. Entry SpecificationsMMS passes to the exit the address of the input parameter block (either an MIO or an LQB, depending on the type of request that MMS has been called to process). Registers at Entry: The contents of the
registers on entry to the MMS exit routines are:
Parameter Descriptions: Register 1 points
to the following list of addresses:
Return SpecificationsThe exit
routines return control to the system with:
Preprocessing Exit Routine: The exit routine indicates whether to bypass the requested MMS function by setting the exit processing indicator to a nonzero value. If the exit processing indicator is not set, the system will process the function. Using Words 4 and 5: The preprocessing exit routine can return optional, installation-defined return and reason codes in areas pointed to by words 4 and 5, respectively, of the exit parameter list. When the exit routine sets the exit processing indicator to a nonzero value, the system checks the value in the area pointed to by word 4. The exit routine can indicate that it has encountered a serious error by setting the field pointed to by word 4 to a value greater than 8. When this happens, MMS terminates the user request. Otherwise, if the field pointed to by word 4 is set to a value of 8 or less, or the exit routine does not set the exit processing indicator, MMS continues processing and the fields pointed to by words 4 and 5 are passed as information to the MMS postprocessing exit routine (if one is defined). Postprocessing Exit Routine: Like the preprocessing exit routine, the postprocessing exit routine can cause MMS processing to be bypassed by setting the exit processing indicator to a nonzero value and returning control to the system with a zero return code in register 15. However, any values the exit routine places in the fields pointed to by words 4 and 5 of the exit parameter list are not used by the system. Registers at Exit: Upon
return from exit routine processing, the register contents must be:
Coded Examples of MMS Exit RoutinesThis
topic contains the following sample MMS exit routines:
MMSEXIT1 -- Preventing Translations of a Particular Language: In the following example, an installation uses the MMS preprocessing exit routine to prevent MMS from translating messages into Japanese. The installation places the language code of the language for which translations are to be suppressed (in this case, JPN is the language code) into the CVTUSER field of the CVT so that the exit routine can access it. When the installation's exit routine is invoked for a translation
request, the routine compares the language code in the CVTUSER field
with the language code contained in the MIO. When the request is
for Japanese translation (MIO contains 'JPN'), the exit routine causes
MMS translation to be bypassed by setting the exit processing indicator
(pointed to by word 3 of the exit parameter list) to a nonzero value
and returning control.
MMSEXIT2 -- Collecting MMS Usage Statistics: In the following example, an installation uses the MMS postprocessing exit routine to track the number of successful and unsuccessful (successful=RC0, unsuccessful=nonzero) translations of U.S. English into Japanese. The installation first creates a work area to contain counters of successful and unsuccessful translations. The routine places the address of the work area in the CVTUSER field of the CVT so that the postprocessing exit routine can find the work area and update the counters. The installation can use the following MMS postprocessing exit
routine to determine whether the translation was successful. Based
on the result, the routine updates the appropriate counter in the
work area (pointed to in CVTUSER).
|
Copyright IBM Corporation 1990, 2014
|