Introduction to system programming commands

The CICS® system programming interface (SPI) commands are for managing the CICS system and its resources, in contrast to the application programming interface (API) commands, with which you implement end-user applications.

The API is described in CICS API commands; Developing applications contains general information that applies to both groups of commands.

SPI commands either retrieve information about the system and its resources, or modify them. They fall into three broad categories:
  • Commands that retrieve information about a CICS resource or system element:
    • The INQUIRE commands
    • COLLECT STATISTICS
    • EXTRACT STATISTICS
  • Commands that modify the status or definition of the system or a resource, or invoke a system process:
    • The SET commands
    • The CREATE commands
    • The DISCARD commands
    • The PERFORM commands
    • ACQUIRE TERMINAL
  • Commands that modify or expand system execution by means of exits:
    • DISABLE PROGRAM
    • ENABLE PROGRAM
    • EXTRACT EXIT
    • RESYNC ENTRYNAME

Together, these commands provide you with a command-level equivalent to the function of the main terminal transaction (CEMT) and the trace control transaction (CETR), and as an alternative to the CEDA transaction for defining resources. This means that you can write transactions for administering the running CICS system. You could, for example, provide some functions of the main terminal command for a group of users without giving them authority to use CEMT.

System programming commands are supported in the same way as application programming commands. They can be used in programs written in COBOL, C, PL/I, or assembler language, and they are recognized by the command interpreter (CECI), the execution diagnostic facility (EDF), and the CICS translator.

However, there are some differences between SPI and API commands:
  • You cannot function ship SPI commands by naming a remote resource or, generally, by specifying the SYSID option. They are executed in the CICS region in which the issuing program is running. If the command specifies a remote resource (one owned by another region), CICS uses the local (partial) definition to process the request. Consequently, if you want to use or change a resource definition in a remote region, you must cause your SPI command to be executed in that region, either by transaction routing or by distributed program link. Shared temporary storage queues are an exception.
  • Additional security checking is available for SPI commands, as explained in The format of SPI commands.
  • Programs containing SPI commands must be translated with the SP translator option, as explained in Security checking.

Special considerations apply to certain groups of commands. They are described in Inquiry commands.