Guidelines for Using the CMS Support of IUCV
Some IUCV macro functions affect the IUCV environment of the entire virtual machine. Because CMS cannot intercept any IUCV macro functions directly issued by a program, any CMS application program using IUCV has certain limitations on its use of IUCV functions. The program must not issue any IUCV function that interferes with the operation of other IUCV applications running in the same virtual machine.
Each IUCV macro function is listed below, along with an explanation
of how the IUCV function can be used in a CMS application program.
If a program does issue any IUCV functions listed as Should not
be used…
, other programs using IUCV in CMS in the same virtual
machine may be affected.
Use the following functions only to set
up the parameter list:
- ACCEPT
- Is invoked by a program using CMSIUCV ACCEPT. It should not be issued directly by a program in CMS, except to set up an IUCV ACCEPT parameter list (MF=L).
- CONNECT
- Is invoked by a program using CMSIUCV CONNECT. It should not be issued directly by a program in CMS, except to set up an IUCV CONNECT parameter list (MF=L).
- SEVER
- Is invoked by a program using CMSIUCV SEVER. This function should not be issued directly by a program in CMS, except to set up an IUCV SEVER parameter list (MF=L). CMSIUCV SEVER checks to make sure that the IPALL bit is not turned on in the IPFLAGS1 parameter list, because this would sever all paths in the virtual machine.
Use these functions freely, but with caution
as noted under each function:
- PURGE
- Can be issued directly by a program in CMS.
- QUERY
- Can be issued directly by a program in CMS. This function is also used by HNDIUCV to determine the size of the external interrupt buffer and the maximum number of connections for this virtual machine.
- QUIESCE
- Can be issued directly by a program in CMS to quiesce a specific path. However, the issuing program must be careful that the IPALL bit is not turned on in the IPFLAGS1 parameter list, because this would quiesce all paths in the virtual machine.
- RECEIVE
- Can be issued directly by a program in CMS. However, the issuing program must be careful that a specific message ID or path ID is specified in the IUCV parameter list. If it is not, IUCV receives the first message that has not yet been partially received for the entire virtual machine, and this message may not belong to the program that issued the RECEIVE.
- REJECT
- Can be issued directly by a program in CMS.
- REPLY
- Can be issued directly by a program in CMS.
- RESUME
- Can be issued directly by a program in CMS to resume a specific path. However, the issuing program must be careful that the IPALL bit is not turned on in the IPFLAGS1 byte of the parameter list, because that would resume all paths in the virtual machine.
- SEND
- Can be issued directly by a program in CMS.
- TESTCMPL
- Can be issued directly by a program in CMS. However, the issuing program must be careful that the specified message ID or path ID is also specified in the IUCV parameter list. If it is not, IUCV completes the first message on the REPLY queue for the entire virtual machine, and this message may not belong to the program that issued the TESTCMPL.
Do not use these functions in a CMSIUCV
program:
- DCLBFR
- Should not be issued directly by a program in CMS. This function is used by HNDIUCV SET to initialize the virtual machine's IUCV environment.
- DESCRIBE
- Should not be used by a program in CMS. This function clears the pending-message external interruption for the described message. This interrupt may not belong to the issuer of the DESCRIBE function; as a result, other programs running in the same virtual machine may be affected because the message is lost and never reflected to the true target.
- RTRVBFR
- Should not be issued directly by a program in CMS. The HNDIUCV CLR function and CMS abend processing use RTRVBFR to terminate the virtual machine's IUCV environment.
- SETMASK
- Should not be used by a program in CMS. This function disables certain IUCV external interrupts for the entire virtual machine; as a result, other programs running in the same virtual machine may be affected.
- SETCMASK
- Should not be used by a program in CMS. This function disables certain IUCV external interrupts for the entire virtual machine; as a result, other programs running in the same virtual machine may be affected.
- TESTMSG
- Should not be used by a program in CMS. This function places the entire virtual machine in a wait state if no incoming messages or replies are pending; as a result, other programs running in the same virtual machine may be affected.