MSO/CICS Technical Description

The following topics provide information about the internal structure and functionality of MSO/CICS. This information will help you understand MSO/CICS processing, make appropriate decisions during installation, and troubleshoot installation and operational problems.

Included are discussions of steady-state operation, starting and stopping links to MSO address spaces, starting and stopping user sessions, attention key handling, operations under MRO, transaction security, retrieving userids, and MSO/CICS user exits. There are also tables giving information on all MSO/CICS transactions and programs, including user exits.

In this section:

Steady-State Operation

Attention Key Handling

MRO Issues

Transaction Security

Userid Processing

Summary of MSO Transactions and Program

Steady-State Operation

When MSO/CICS is active, the following run in the CICS address space:

  • One pair of MVS subtasks, running programs MSXGET and MSXPUT, for each MSO address space with which the CICS address space is communicating.

  • One series of pseudo-conversational MSOCICS transactions for each user currently in session with MSO.

The MSXGET and MSXPUT subtasks communicate with their counterparts in the MSO address space, MSPUT and MSGET. They pass messages in processor storage, using the IBI Subsystem to perform the communications. These communication methods are described in the OS/390 and MVS Installation Guide. Please note that the communication data sets that are set up during installation do not contain the actual messages being passed; they are used only for initialization and control of the cross-address-space communications.

In this section:

Initialization of the MSO Link by MSOCICS

Termination of the MSO Link by MSOUTIL

Termination of the MSO Link by MSOPLT

MSO/CICS Initialization

MSO/CICS Termination

The MSCXWRT User Exit

The MSOCICS program is installed with transid MSO (default). This pseudo-conversational transaction:

Please note that all actual MSO/FOCUS processing is performed in the MSO address space; the only work done in the CICS address space is screen I/O.

In addition to the above, when using Attention Key support, the program MSOEXIT must be installed as an XZCATT exit. Furthermore, when using Attention Key support in an MRO environment, the long-running transaction MTOR is running in the TOR, and the transaction MSAT is started in the AOR when Attention is pressed. Further details on Attention Key support are provided below.


Top of page

Initialization of the MSO Link by MSOCICS

Other than the special considerations required for Attention Key support, nothing need be done to start the link from CICS to an MSO address space. It is automatically activated when the first user runs the MSOCICS program, normally installed with transid MSO. When a user invokes the MSO transaction, it checks to see if the link to the MSO address space is running. If not, it performs initialization tasks and starts MSXGET and MSXPUT (the communications subtasks, described above) to activate the link.


Top of page

Termination of the MSO Link by MSOUTIL

MSOUTIL, the MSO utility program, is normally installed as the MSMT (MSO Master Terminal) transaction. It can be used to bring down the link(s) to one or multiple MSO address spaces. It stops the MSXGET and MSXPUT subtasks and frees the resources associated with the link(s) to each MSO specified.


Top of page

Termination of the MSO Link by MSOPLT

The MSOPLT program runs at CICS shutdown. Like MSOUTIL, it brings down all links to MSO address spaces, stops all of the MSXGET and MSXPUT subtasks (which is necessary in order to prevent SA03 abends at CICS termination), and frees all MSO/CICS resources.


Top of page

MSO/CICS Initialization

When invoked, the MSOCICS program (by default, installed with transid MSO) reads its transid from the EIB. Using this transid, it determines which pair of MVS communications subtasks and which pair of communications data sets are to be used in communicating with the MSO address space. The transid and the ddnames of the communications data sets must correspond. It is also crucial that MSO/CICS always be run by invoking its associated transaction; Calling it directly causes it to read an incorrect transid and prevent proper communications.

As discussed above, if the link to the appropriate MSO address space is not up, MSOCICS starts the MSXPUT and MSXGET subtasks. If the link is up, MSOCICS initializes an MSO/FOCUS session for the user, and then starts normal processing.


Top of page

MSO/CICS Termination

When a user's MSO/FOCUS session is ended, MSO/CICS will:

  1. Determine if the MSCXWRT user exit is installed.
  2. For normal termination of a session (via the FIN command), display the MSO13206 message only if the exit is not installed.
  3. For all other types of session termination (e.g., Attention key, Session Break key, abend, MSMT brought down the link, MSO has been shut down), display an appropriate message about why the session has been ended.
  4. If the exit is not installed, and if TRANSID has been specified (either in the MSO configuration file or by reassembling CMSOTABL), then start the desired transaction. (Note that the transid the configuration file will override the transid in CMSOTABL.)
  5. If the exit is installed, run it.

Should a session failure (such as TIMEOUT) occur while the keyboard is unlocked, the appropriate message will display when the user next presses the Enter key.


Top of page

The MSCXWRT User Exit

As described above, by installing the MSCXWRT user exit, you can suppress both the display of the MSO13206 message and the next-transaction processing.

MSCXWRT is started via XCTL, and is run:

Source code for a sample MSCXWRT exit is provided in member MSCXWRTS of MSO.DATA, with JCL in member MSCXWRTJ. This sample executes a transaction without displaying any messages or waiting for the user to press Enter. You may modify this sample to perform any processing you desire.

To install this exit, assemble and link the source code to create a module called MSCXWRT. This module should be added to the PPT, and made available in one of the DFHRPL libraries, such as MSO.LOAD.


Top of page

Attention Key Handling

MSO's Attention key handling is an optional feature; if not installed, MSO will ignore the Attention key. The feature requires installation of the XZCATT exit. CICS allows more than one user program to run at this exit point, so MSO's processing will not interfere with any other use of this exit on your system. Source code for the exit is supplied in member MSOEXIT of MSO.DATA; it must be assembled and linked with the libraries for your release of CICS.

Attention Key support is more elaborate in an MRO environment, as described in the next section.


Top of page

MRO Issues

MSO is fully compatible with MRO. You need to ensure the MRO link is configured properly, and to perform additional setup for Attention key support.

In this section:

Userid Propagation Under MRO

Attention Key Support Under MRO


Top of page

Userid Propagation Under MRO

MSO depends upon proper functioning of the ASSIGN USERID command in order to support user-level security. Therefore, in order for the userid to be transferred from the TOR to the AOR, the connection between the TOR and the AOR must have the ATTACHSEC parameter set to IDENTIFY.


Top of page

Attention Key Support Under MRO

When Attention Key support is desired in an MRO environment, please note the following:


Top of page

Transaction Security

There are no special requirements for transaction security with the MSO/CICS transactions. The Summary of MSO Transactions and Programs lists the circumstances under which each transaction is run. You should ensure that end users who are authorized to access MSO/FOCUS can run MSO. The other transactions are started by operators, the PLT, or other transactions, as shown.


Top of page

Userid Processing

MSO needs to determine the user's userid during session establishment, in order to activate user-level security. This allows MSO to properly identify users to MVS, to ensure proper access to files and other protected resources.

In this section:

The MSCXUID User Exit

MSO uses the ASSIGN USERID command to determine the userid. If your system does not support this command, the userid is not available to MSO, and user-level security is not available for MSO/CICS sessions.

You can test whether this works on your system by using the IBM-supplied CECI transaction to execute the ASSIGN USERID command and examine the results. In an MRO environment, as mentioned above, you must specify ATTACHSEC(IDENTIFY) for ASSIGN USERID to work properly in an MRO environment.

If you desire, you can turn external security off (via the EXTSEC parameter in the MSO configuration file), allowing any user to log onto MSO and have the same security rights as the MSO address space. This means, however, that MSO features such as GETUSER will not operate properly, and your system's security policy could be compromised, since users might have access to files for which they are not authorized.

If your system does not support ASSIGN USERID, or you wish to use a different userid than is provided by CICS, MSO provides the MSCXUID user exit. If the CICS program MSCXUID exists, it is called with an 8-byte COMMAREA, into which the program must insert the userid to be used by MSO. If the program does not exist, then MSO executes an ASSIGN USERID to get the userid.


Top of page

The MSCXUID User Exit

Source code for a sample MSCXUID exit is provided in member MSCXUIDS of MSO.DATA, with JCL in member MSCXUIDJ. This sample does an ASSIGN OPID to retrieve the operator ID and puts this into the COMMAREA. This causes MSO to use the OPID instead of the CICS userid. You may modify this sample to provide any userid you desire.

To install this exit, assemble and link the source code to create a module called MSCXUID. This module should be added to the PPT, and made available in one of the DFHRPL libraries, such as MSO.LOAD.


Top of page

Summary of MSO Transactions and Programs

Transaction

Program

Runs in

MRO Only?

Run by

MSO

MSOCICS

AOR

No

End user

MSMT

MSOUTIL

AOR

No

Operator

MTOR

MSOTOR

TOR

Yes

PLT, at startup

MSAT

MSOATTN

AOR

Yes

MTOR, upon ATTN

 

Program

CICS or MVS?

Transid

Runs In

MRO Only?

Use

MSOCICS

CICS

MSO

AOR

 

User's MSO session.

MSOUTIL

CICS

MSMT

AOR

 

Utility transaction, used for stopping link(s) to MSO address space(s).

MSOPLT

CICS

 

AOR

 

Shuts down all MSO links and MVS subtasks at CICS termination; run from the PLT.

MSOATTN

CICS

MSAT

AOR

Yes

Part of Attention Key support under MRO; started by MSOTOR when Attn is pressed.

MSCXUID

CICS

 

AOR

 

Optional user exit to replace ASSIGN USERID call.

MSCXWRT

CICS

 

AOR

 

Optional user exit to replace display of final message and link to transaction specified by TRANSID.

MSOTOR

CICS

MTOR

TOR

Yes

Part of Attention Key support under MRO; loops until Attn has been pressed, then invokes MSAT. Must be started before first use of MSO transaction.

MSOEXIT

CICS

 

TOR

 

CICS task attach exit (XZCATT). Must be enabled before first use of MSO transaction.

MSXGET

MVS

 

AOR

 

Part of inter-address-space communications; receives data from MSO address space.

MSXPUT

MVS

 

AOR

 

Part of inter-address-space communications; transmits data to MSO address space.


Information Builders