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: |
When MSO/CICS is active, the following run in the CICS address space:
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 |
The MSOCICS program is installed with transid MSO (default). This pseudo-conversational transaction:
Reads the user's screen.
Passes it to MSXPUT to be shipped to the MSO address space.
Waits for a response from the MSO address space to be received by MSXGET.
Displays the response on the screen.
Ends the 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.
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.
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.
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.
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.
When a user's MSO/FOCUS session is ended, MSO/CICS will:
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.
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:
Immediately, after normal session termination (suppressing the MSO13206 message)
After the appropriate message is displayed, in the event of an abnormal session termination
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.
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.
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: |
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.
When Attention Key support is desired in an MRO environment, please note the following:
The XZCATT exit is loaded in the TOR, not the AOR, as it is handling terminal-related control blocks.
The MTOR transaction must be running in the TOR. This transaction, which may have any name, is a long-running transaction that must be active while any MSO sessions are running.
The XZCATT exit must be enabled before the first invocation of the MSO transaction. If MSO is run first, it will determine that XZCATT is not enabled and will permanently (for the life of the CICS address space) mark Attention Key support as not installed.
When it detects that Attention has been pressed, MTOR starts the MSAT transaction in the AOR. MSAT then notifies the MSO transaction. Please note that the MSAT transid is hard-coded in MSOTOR. If necessary, you may zap MSOTOR with another transid.
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.
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: |
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.
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.
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 |