Exits

The following exits allow you to individually tailor MSO for your site.

MSIDVER: User Authentication Exit

The MSIDVER exit is used to replace MSO's authentication of the userid and password for a VTAM user.

MSIDVER must have entry point MSIDVER, and should be linked into a module with name MSIDVER. It receives control in AMODE 31. MSO must be running with APF authorization in order to use MSIDVER. The MSIDVER module should be placed in FOCLIB.LOAD or in another library that is allocated to STEPLIB.

A sample is provided in MSO.DATA(MSIDVER). The parameters for the exit are documented in the sample.


Top of page

MSIDTR: Userid Translation Exit

The MSIDTR exit is used to translate logon userids to security userids known by MSO.

MSIDTR must have entry point MSIDTR, and should be linked into a module with name MSIDTR. It receives control in AMODE 31. The MSIDTR module should be placed in FOCLIB.LOAD or in another library that is allocated to STEPLIB.

A sample is provided in MSO.DATA(MSIDTR). The parameters for the exit are documented in the sample. If you use the provided sample, be sure to update the userid table to include your MSO users, and to remove the sample userids.


Top of page

MSCXUID: Supply CICS Userid

The MSCXUID exit is used to supply a CICS userid when ASSIGN USERID is not supported, or when it is desired to override the userid that it returns. MSCXUID is a stand alone CICS program that the user must supply.

MSCXUID is a regular CICS-defined program that we call as follows:

EXEC CICS LINK PROGRAM('MSCXUID') COMMAREA(AREA) LENGTH(8)

It returns the userid in the COMMAREA (8 bytes)


Top of page

MSUSRXT:The MSO Initialization and Termination Exit

MSUSRXT is a user-written module that is called by MSO when MSO is started and ended, or if MSO abends. The parameters sent to MSUSRXT are as follows:

CALLTYPE: I4 -INPUT

CALLTYPE specifies the type of call made to MSUSRXT; 0 if MSO is being initialized, 1 if MSO is being terminated, and 2 if MSO is in the process of abending.

USER DOUBLEWORD: address -INPUT

The user doubleword address is the address of eight bytes of memory that is meant for the use of MSO users. To provide memory that can be shared by the MSO users, the MSUSRXT exit would GETMAIN whatever amount of memory desired, and put the address of this memory wherever the user double word address points. Any MSO user can then, by finding this double word area, access this common user memory. Individual users in MSO can find this doubleword area by using the MSODBLW: Retrieve the User Doubleword Address exit.

MAXFOC: I4 -INPUT

The maximum number of user tasks which can exist at any one time in the address space. This allows MSUSRXT, if desired, to GETMAIN all needed memory for all possible users in advance of the users logging on.

RETCODE: I4 -OUTPUT

MSUSRXT puts its return code at the location of this parm. If RETCODE is set to 4, MSO will immediately terminate.

To implement the MSUSRXT exit, the site must assemble and link their source code with module name MSUSRXT and entry point MSUSRXT. The module is deleted from storage after the initialization call, so the exit must be coded in a way that allows for this, such as keeping all static data in user common memory, described in User Common Memory. Once created, the module should be copied into FOCLIB.LOAD.


Top of page

DYNALLOC: The DYNAM ALLOC User Exit

FOCUS contains a user exit that allows a site to trap all DYNAM ALLOC commands and, if desired, prevent a user from allocating a file. MSO sites in particular may wish to take advantage of the additional security afforded by this exit.

The exit is invoked every time a DYNAM ALLOC command is executed. The user program can then examine the DSNAME and user ID involved in the DYNAM command, and accept or reject the command. If the exit returns a zero, the DYNAM is accepted. If the exit returns a non-zero code, the DYNAM is rejected with a FOC796 message.

The user exit is a self-contained MVS module with a site-selectable name and entry point. The name and entry point of the module should be the same. This name is zapped into the module FOCUS at entry point DYNOPT+8. Once FOCUS sees that this area is non-blank, it loads the module, and on further calls to DYNAM, calls the module.

A sample of this exit can be found in FOCCTL.DATA(DYNEXIT).


Top of page

MSVTXT: VTAM Text User Exit

The MSVTXT exit is used to manipulate the VTAM text in the DATA field passed by VTAM when the MSO VTAM logon screen has been bypassed. This occurs when using MSO with a VTAM session manager, as described in Testing and Logging on to MSO.

MSVTXT is used in lieu of MSO's standard parsing of the VTAM text. MSVTXT might be necessary if, for example, the VTAM text is encrypted, which would prevent MSO from being able to parse the data properly.

MSVTXT is called with a single input parameter, which is the string passed to MSO by VTAM at session initiation. The output parameters of MSVTXT correspond to the fields on MSO's VTAM logon screen and have the same meaning as if they were read from that screen.

MSVTXT must have entry point MSVTXT, and should be linked into a module with name MSVTXT. It receives control in AMODE 31. The MSVTXT module should be placed in FOCLIB.LOAD or in another library that is allocated to STEPLIB.

A skeleton MSVTXT is found in MSO.DATA(MSVTXT).


Top of page

SSUSRACT: VTAM Account Field Validation

The SSUSRACT exit is used to validate and/or alter the account field specified on the VTAM logon screen.

A skeleton SSUSRACT is provided in MSO.DATA(SSUSRACT). To install SSUSRACT, after it is assembled, run the following JCL:

//LINKSTEP EXEC PGM=IEWL,PARM='RENT,NCAL,LET, LIST, SIZE = (2048K)'
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=VIO,SPACE=(CYL,(10,5))
//OBJ DD DSN=ssusract.assemble.object,DISP=SHR
//FOCLIB DD DSN=prefix.FOCLIB.LOAD,DISP=SHR
//MAINTAIN DD DSN=prefix.FOCCTL.DATA,DISP=SHR
//SYSLMOD DD DSN=prefix.FOCLIB.LOAD,DISP=SHR
//SYSLIN DD *
INCLUDE OBJ
INCLUDE FOCLIB(SSFOC)
INCLUDE MAINTAIN(SSFOC)
NAME SSFOC(R)
/*

Top of page

MSSMFXT:Customized SMF Records

The MSSMFXT exit allows you to customize the SMF records that MSO writes for user logons and logoffs, or to write the data to somewhere other than the SMF files. The standard logoff record is described in MSO Usage Accounting.

A sample of MSSMFXT is supplied in MSO.DATA. The sample contains DSECTS that map the SMF records and the parameters for the exit. The supplied sample simply writes the standard record to the SMF data stream.

Sample JCL to assemble and link-edit MSSMFXT is supplied in member MSSMFJCL of MSO.DATA. MSSMFXT must be reentrant, and runs in AMODE 24, RMODE 24.


Top of page

MSCXWRT: Customized CICS Termination Processing

The MSCXWRT exit allows you to customize or eliminate the message that is written to a CICS user's terminal after terminating a FOCUS session, and to control the processing that is performed when the MSO transaction completes.

A sample of MSCXWRT is supplied in MSO.DATA(MSCXWRTS). Sample JCL to pre-process, assemble, and link-edit MSCXWRT is supplied in MSO.DATA(MSCXWRTJ).


Top of page

FOCUSID: Setting the FOCUS DBA Password

The FOCUSID exit allows the FOCUS DBA password, normally set by the FOCUS command SET PASS, to be set automatically by an external security system such as RACF, CA-ACF2, or CA-TOP SECRET.

The use of FOCUSID is fully documented in the FOCUS for S/390 MVS/TSO Installation Guide.

Note: When writing a version of FOCUSID to run under MSO, you must use the MSOINFO subroutine to find the userid, if needed; normal methods of retrieving the userid are not valid under MSO.


Information Builders