The IEFSSI macro (REQUEST=QUERY only) is also described in z/OS MVS Programming: Assembler Services Reference ABE-HSP.
The REQUEST=ADD, REQUEST=ACTIVATE, REQUEST=OPTIONS, REQUEST=DEACTIVATE, REQUEST=SWAP, REQUEST=PUT, REQUEST=GET and REQUEST=QUERY parameters, which designate the services of the IEFSSI macro, are mutually exclusive. You can select only one.
For information about using dynamic subsystem services, see z/OS MVS Using the Subsystem Interface. This topic also includes information about related macros IEFSSVT and IEFSSVTI.
The requirements for the caller are:
Environmental factor | Requirement |
---|---|
Minimum authorization: | For the QUERY request, problem state with any
PSW key. The REQUEST=ADD, REQUEST=ACTIVATE, REQUEST=OPTIONS, REQUEST=DEACTIVATE,
REQUEST=SWAP, REQUEST=PUT, and REQUEST=GET parameters require one
of the following:
|
Dispatchable unit mode: | Task |
Cross memory mode: | PASN=HASN=SASN |
AMODE: | 24-bit or 31-bit |
ASC mode: | Primary or Access register (AR) |
Interrupt status: | Enabled for I/O and external interrupts |
Locks: | No locks held |
Control parameters: | Control parameters must be in the primary address space |
The caller must not have established an EUT FRR.
Before issuing the IEFSSI macro, the caller does not have to place any information into any register unless using it in register notation for a particular parameter, or using it as a base register.
Some callers depend on register contents remaining the same before and after issuing a service. If the system changes the contents of registers on which the caller depends, the caller must save them before issuing the service, and restore them after the system returns control.
None.
The IEFSSI macro with the ADD parameter dynamically adds and defines a subsystem to the system.
The syntax of the IEFSSI REQUEST=ADD macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IEFSSI. |
IEFSSI | |
␢ | One or more blanks must follow IEFSSI. |
SUBNAME=subname | subname: RS-type address or address in register (2) - (12). |
,REQUEST=ADD | |
,CONSNAME=consname | consname: RS-type address or address in register (2) - (12). |
,CONSNAME=0 | Default: CONSNAME=0 |
,INITRTN=initrtn | initrtn: RS-type address or address in register (2) - (12). |
,INITRTN=NO_INITRTN | Default: INITRTN=NO_INITRTN |
,INITPARM=initparm | initparm: RS-type address or address in register (2) - (12). |
,INITPARM=NO_INITPARM | Default: INITPARM=NO_INITPARM |
,INITPLEN=initplen | initplen: RS-type address or address in register (2) - (12). |
,PLISTVER=IMPLIED_VERSION | |
,PLISTVER=MAX | Default: IMPLIED_VERSION |
,PLISTVER=plistver | plistver: 1 |
,RETCODE=retcode | retcode: RS-type address or address in register (2) - (12) of fullword output variable |
,RSNCODE=rsncode | rsncode: RS-type address or address in register (2) - (12) of fullword output variable |
,COM=com | com: comment string |
,COM=NULL | Default: COM=NULL |
,MF=S | Default: MF=S |
,MF=(L,list addr) | |
,MF=(L,list addr,attr) | |
,MF=(L,list addr,0D) | |
,MF=(E,list addr) | |
,MF=(E,list addr,COMPLETE) | |
The parameters are explained as follows:
This fullword field must be padded to the right with blanks or nulls if it is less than 4 characters long.
The default is 0. If the default parameter is used, the SSI issues messages to the consoles that are receiving the INTIDS attribute.
A subsystem initialization routine name that is less than 8 characters long must be padded to the right with blanks. The default is NO_INITRTN.
The INITPARM parameter is applicable only if you specify the INITRTN parameter.
INITPLEN can be from 1 to 60 characters long inclusive. If the length is greater than 60, the subsystem is defined but the subsystem initialization routine is not invoked.
If you can tolerate the size change, IBM® recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form; in this way, MAX ensures that the parameter list does not overwrite nearby storage.
Use MF=L to specify the list form of the IEFSSI macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. No other parameters may be coded with the list form of the macro.
Use MF=E together with the list form of the macro for applications that require reentrant code. The execute form of the IEFSSI macro stores the parameters into the storage area defined by the list form and generates the macro invocation to transfer control to the service.
The IEFSSI macro with the ACTIVATE parameter dynamically activates a subsystem so that its function routines are available to process function requests.
The syntax of the IEFSSI REQUEST=ACTIVATE macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IEFSSI. |
IEFSSI | |
␢ | One or more blanks must follow IEFSSI. |
SUBNAME=subname | subname: RS-type address or address in register (2) - (12). |
,REQUEST=ACTIVATE | |
,INTOKEN=intoken | intoken: RS-type address or address in register (2) - (12). |
,INTOKEN=NO_INPUT_TOKEN | Default: INTOKEN=NO_INPUT_TOKEN |
,PLISTVER=IMPLIED_VERSION | |
,PLISTVER=MAX | Default: IMPLIED_VERSION |
,PLISTVER=plistver | plistver: 1 |
,RETCODE=retcode | retcode: RS-type address or address in register (2) - (12) of fullword output variable |
,RSNCODE=rsncode | rsncode: RS-type address or address in register (2) - (12) of fullword output variable |
,COM=com | com: comment string |
,COM=NULL | Default: COM=NULL |
,MF=S | Default: MF=S |
,MF=(L,list addr) | |
,MF=(L,list addr,attr) | |
,MF=(L,list addr,0D) | |
,MF=(E,list addr) | |
,MF=(E,list addr,COMPLETE) | |
The parameters are explained as follows:
This field must be padded to the right with blanks or nulls if it is less than 4 characters long.
The ACTIVATE request may also be used to reactivate a subsystem that has been deactivated. To reactivate a subsystem, you can either use the same SSVT as you used to deactivate the subsystem or you can use a new SSVT.
The default is NO_INPUT_TOKEN.
If you can tolerate the size change, IBM recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form; in this way, MAX ensures that the parameter list does not overwrite nearby storage.
Use MF=L to specify the list form of the IEFSSI macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. No other parameters may be coded with the list form of the macro.
Use MF=E together with the list form of the macro for applications that require reentrant code. The execute form of the IEFSSI macro stores the parameters into the storage area defined by the list form and generates the macro invocation to transfer control to the service.
The IEFSSI macro with the OPTIONS parameter defines a set of optional subsystem characteristics.
The syntax of the IEFSSI REQUEST=OPTIONS macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IEFSSI. |
IEFSSI | |
␢ | One or more blanks must follow IEFSSI. |
SUBNAME=subname | subname: RS-type address or address in register (2) - (12) of fullword output variable |
,REQUEST=OPTIONS | |
,COMMAND=NO | Default: COMMAND=NO |
,COMMAND=YES | |
,REQDSUB=MSTR | Default: REQDSUB=MSTR |
,REQDSUB=PRI | |
,PLISTVER=IMPLIED_VERSION | |
,PLISTVER=MAX | Default: IMPLIED_VERSION |
,PLISTVER=plistver | plistver: 1 |
,RETCODE=retcode | retcode: RS-type address or address in register (2) - (12) of fullword output variable |
,RSNCODE=rsncode | rsncode: RS-type address or address in register (2) - (12) of fullword output variable |
,COM=com | com: comment string |
,COM=NULL | Default: COM=NULL |
,MF=S | Default: MF=S |
,MF=(L,list addr) | |
,MF=(L,list addr,attr) | |
,MF=(L,list addr,0D) | |
,MF=(E,list addr) | |
,MF=(E,list addr,COMPLETE) | |
The parameters are explained as follows:
This field must be padded to the right with blanks or nulls if it is less than 4 characters long.
If you invoke the OPTIONS parameter multiple times for a single subsystem, the most recent invocation determines the resulting characteristics. The defaults listed for the COMMAND and REQDSUB parameters below apply to the first invocation.
If a parameter is not specified on a subsequent invocation, the corresponding subsystem characteristic retains the value that was assigned by the last invocation that specified the parameter.
The meanings are:
When the procedure name on the START command matches a defined subsystem name, the procedure being started is recognized as a subsystem. If the START command does not specify the SUB parameter, the subsystem is started under the control of the subsystem identified by the REQDSUB parameter.
If you can tolerate the size change, IBM recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form; in this way, MAX ensures that the parameter list does not overwrite nearby storage.
Use MF=L to specify the list form of the IEFSSI macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. No other parameters may be coded with the list form of the macro.
Use MF=E together with the list form of the macro for applications that require reentrant code. The execute form of the IEFSSI macro stores the parameters into the storage area defined by the list form and generates the macro invocation to transfer control to the service.
The IEFSSI macro with the DEACTIVATE parameter deactivates a subsystem.
The syntax of the IEFSSI REQUEST=DEACTIVATE macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IEFSSI. |
IEFSSI | |
␢ | One or more blanks must follow IEFSSI. |
SUBNAME=subname | subname: RS-type address or address in register (2) - (12). |
,REQUEST=DEACTIVATE | |
,OUTTOKEN=outtoken | outtoken: RS-type address or address in register (2) - (12). |
,PLISTVER=IMPLIED_VERSION | |
,PLISTVER=MAX | Default: IMPLIED_VERSION |
,PLISTVER=plistver | plistver: 1 |
,RETCODE=retcode | retcode: RS-type address or address in register (2) - (12) of fullword output variable |
,RSNCODE=rsncode | rsncode: RS-type address or address in register (2) - (12) of fullword output variable |
,COM=com | com: comment string |
,COM=NULL | Default: COM=NULL |
,MF=S | Default: MF=S |
,MF=(L,list addr) | |
,MF=(L,list addr,attr) | |
,MF=(L,list addr,0D) | |
,MF=(E,list addr) | |
,MF=(E,list addr,COMPLETE) | |
The parameters are explained as follows:
This field must be padded to the right with blanks or nulls if it is less than 4 characters long.
A subsystem can be reactivated after being deactivated by using the same or a different SSVT.
This token may be used in a subsequent ACTIVATE request to reactivate the subsystem using the same SSVT.
If you can tolerate the size change, IBM recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form; in this way, MAX ensures that the parameter list does not overwrite nearby storage.
Use MF=L to specify the list form of the IEFSSI macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. No other parameters may be coded with the list form of the macro.
Use MF=E together with the list form of the macro for applications that require reentrant code. The execute form of the IEFSSI macro stores the parameters into the storage area defined by the list form and generates the macro invocation to transfer control to the service.
The IEFSSI macro with the SWAP parameter replaces the SSVT that is currently being used to route function requests with a new one.
The syntax of the IEFSSI REQUEST=SWAP macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IEFSSI. |
IEFSSI | |
␢ | One or more blanks must follow IEFSSI. |
SUBNAME=subname | subname: RS-type address or address in register (2) - (12). |
,REQUEST=SWAP | |
,INTOKEN=intoken | intoken: RS-type address or address in register (2) - (12). |
,INTOKEN=NO_INPUT_TOKEN | Default: INTOKEN=NO_INPUT_TOKEN |
,OUTTOKEN=outtoken | outtoken: RS-type address or address in register (2) - (12). |
,PLISTVER=IMPLIED_VERSION | |
,PLISTVER=MAX | Default: IMPLIED_VERSION |
,PLISTVER=plistver | plistver: 1 |
,RETCODE=retcode | retcode: RS-type address or address in register (2) - (12) of fullword output variable |
,RSNCODE=rsncode | rsncode: RS-type address or address in register (2) - (12) of fullword output variable |
,COM=com | com: comment string |
,COM=NULL | Default: COM=NULL |
,MF=S | Default: MF=S |
,MF=(L,list addr) | |
,MF=(L,list addr,attr) | |
,MF=(L,list addr,0D) | |
,MF=(E,list addr) | |
,MF=(E,list addr,COMPLETE) | |
The parameters are explained as follows:
This field must be padded to the right with blanks or nulls if it is less than 4 characters long.
When you use a SWAP request to switch SSVTs, it is possible for you to use a subsequent SWAP request to switch the SSVTs again, which restores the old function routines.
A SWAP request that targets an inactive subsystem is treated as an ACTIVATE request, but receives the IEFSSI_WARNING (4) return code.
The default is NO_INPUT_TOKEN.
This token may be used in a subsequent SWAP request to reactivate the subsystem using the same SSVT.
If you can tolerate the size change, IBM recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form; in this way, MAX ensures that the parameter list does not overwrite nearby storage.
Use MF=L to specify the list form of the IEFSSI macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. No other parameters may be coded with the list form of the macro.
Use MF=E together with the list form of the macro for applications that require reentrant code. The execute form of the IEFSSI macro stores the parameters into the storage area defined by the list form and generates the macro invocation to transfer control to the service.
The IEFSSI macro with the PUT parameter stores subsystem-defined data for the subsystem.
The syntax of the IEFSSI REQUEST=PUT macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IEFSSI. |
IEFSSI | |
␢ | One or more blanks must follow IEFSSI. |
SUBNAME=subname | subname: RS-type address or address in register (2) - (12). |
,REQUEST=PUT | |
,SUBDATA1=subdata1 | subdata1: RS-type address or address in register (2) - (12). of a 4-character input area |
,SUBDATA2=subdata2 | subdata2: RS-type address or address in register (2) - (12). of a 4-character input area |
,PLISTVER=IMPLIED_VERSION | |
,PLISTVER=MAX | Default: IMPLIED_VERSION |
,PLISTVER=plistver | plistver: 1 |
,RETCODE=retcode | retcode: RS-type address or address in register (2) - (12) of fullword output variable. |
,RSNCODE=rsncode | rsncode: RS-type address or address in register (2) - (12) of fullword output variable. |
,COM=com | com: comment string |
,COM=NULL | Default: COM=NULL |
,MF=S | Default: MF=S |
,MF=(L,list addr) | |
,MF=(L,list addr,attr) | |
,MF=(L,list addr,0D) | |
,MF=(E,list addr) | |
,MF=(E,list addr,COMPLETE) | |
The parameters are explained as follows:
This field must be padded to the right with blanks or nulls if it is less than 4 characters long.
You must specify at least one of the following parameters:
If you can tolerate the size change, IBM recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form; in this way, MAX ensures that the parameter list does not overwrite nearby storage.
Use MF=L to specify the list form of the IEFSSI macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. No other parameters may be coded with the list form of the macro.
Use MF=E together with the list form of the macro for applications that require reentrant code. The execute form of the IEFSSI macro stores the parameters into the storage area defined by the list form and generates the macro invocation to transfer control to the service.
The IEFSSI macro with the GET parameter retrieves subsystem-defined data previously stored using the IEFSSI REQUEST=PUT request.
The syntax of the IEFSSI REQUEST=GET macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IEFSSI. |
IEFSSI | |
␢ | One or more blanks must follow IEFSSI. |
SUBNAME=subname | subname: RS-type address or address in register (2) - (12). |
,REQUEST=GET | |
,SUBDATA1=subdata1 | subdata1: RS-type address or address in register (2) - (12) of a 4-character output area. |
,SUBDATA2=subdata2 | subdata2: RS-type address or address in register (2) - (12) of a 4-character output area. |
,PLISTVER=IMPLIED_VERSION | |
,PLISTVER=MAX | Default: IMPLIED_VERSION |
,PLISTVER=plistver | plistver: 1 |
,RETCODE=retcode | retcode: RS-type address or address in register (2) - (12) of fullword output variable. |
,RSNCODE=rsncode | rsncode: RS-type address or address in register (2) - (12) of fullword output variable. |
,COM=com | com: comment string |
,COM=NULL | Default: COM=NULL |
,MF=S | Default: MF=S |
,MF=(L,list addr) | |
,MF=(L,list addr,attr) | |
,MF=(L,list addr,0D) | |
,MF=(E,list addr) | |
,MF=(E,list addr,COMPLETE) | |
The parameters are explained as follows:
This field must be padded to the right with blanks or nulls if it is less than 4 characters long.
You must specify at least one of the following parameters:
If you can tolerate the size change, IBM recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form; in this way, MAX ensures that the parameter list does not overwrite nearby storage.
Use MF=L to specify the list form of the IEFSSI macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. No other parameters may be coded with the list form of the macro.
Use MF=E together with the list form of the macro for applications that require reentrant code. The execute form of the IEFSSI macro stores the parameters into the storage area defined by the list form and generates the macro invocation to transfer control to the service.
The IEFSSI macro with the QUERY parameter requests information about subsystems defined to the system.
The syntax of the IEFSSI REQUEST=QUERY macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IEFSSI. |
IEFSSI | |
␢ | One or more blanks must follow IEFSSI. |
SUBNAME=subname | subname: RS-type address or address in register (2) - (12). |
,REQUEST=QUERY | |
,WORKAREA=workarea | workarea: RS-type address or address in register (2) - (12) of an output area. |
,WORKASP=workasp | workasp: RS-type address or address in register (2) - (12) of an input area. |
,PLISTVER=IMPLIED_VERSION | |
,PLISTVER=MAX | Default: IMPLIED_VERSION |
,PLISTVER=plistver | plistver: 1 |
,RETCODE=retcode | retcode: RS-type address or address in register (2) - (12). of fullword output variable |
,RSNCODE=rsncode | rsncode: RS-type address or address in register (2) - (12). of fullword output variable |
,COM=com | com: comment string |
,COM=NULL | Default: COM=NULL |
,MF=S | Default: MF=S |
,MF=(L,list addr) | |
,MF=(L,list addr,attr) | |
,MF=(L,list addr,0D) | |
,MF=(E,list addr) | |
,MF=(E,list addr,COMPLETE) | |
The parameters are explained as follows:
This field must be padded to the right with blanks or nulls if it is less than 4 characters long.
For the REQUEST=QUERY parameter, the subsystem name may contain the wildcard characters '*' and '?' to request information about multiple subsystems. The meanings for the wildcard characters are:
Use a SUBNAME parameter value of '*' to indicate that information is to be returned for all subsystems.
The output from IEFSSI REQUEST=QUERY is mapped by the IEFJSQRY macro. Subsystems are listed in broadcast order, that is, the order in which they receive broadcast SSI requests.
The output area is mapped by the IEFJSQRY macro. The JQRYLEN field contains the length of the output area.
IBM recommends that you use a job-related or task-related subpool. This allows the system to free the associated storage when the job or task ends, if the caller does not free the returned area.
If you can tolerate the size change, IBM recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form; in this way, MAX ensures that the parameter list does not overwrite nearby storage.
Use MF=L to specify the list form of the IEFSSI macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. No other parameters may be coded with the list form of the macro.
Use MF=E together with the list form of the macro for applications that require reentrant code. The execute form of the IEFSSI macro stores the parameters into the storage area defined by the list form and generates the macro invocation to transfer control to the service.
An invocation of the IEFSSI macro may result in an abend code X'8C5'. See z/OS MVS System Codes for an explanation of this abend code.
When the IEFSSI macro returns control to your program, GPR 15 (and retcode, if you coded RETCODE) contains a return code. When the value in GPR 15 is not 0, GPR 0 (and rsncode if you coded RSNCODE) contains the reason code.
The following table contains return and reason codes, the equate symbols associated with each reason code and the meaning and suggested action for each return and reason code.
Return Code decimal (hex) | Reason Code decimal (hex) | Meaning and Action |
---|---|---|
00 (00) | 00 (00) | Equate Symbol: IEFSSI_FUNCTIONS_COMPLETE Meaning:
The request completed successfully. The result depends on the request:
Action: None. |
04 (04) | 300 (12C) | Equate Symbol: IEFSSI_DEACT_INACTIVE Meaning: The subsystem was already inactive. This is a DEACTIVATE request error. Action: None. |
04 (04) | 301 (12D) | Equate Symbol: IEFSSI_DEACT_OUT_VT_NOT_SSI Meaning: The subsystem is deactivated, however a previously active vector table was not SSI-managed. OUTTOKEN value is 0. This is a DEACTIVATE request error. Action: None. |
04 (04) | 500 (1F4) | Equate Symbol: IEFSSI_SWAP_INACTIVE Meaning: The subsystem was initially active. OUTTOKEN value is 0. This is a SWAP request error. Action: None. |
04 (04) | 501 (1F5) | Equate Symbol: IEFSSI_SWAP_OUT_VT_NOT_SSI Meaning: The swap is complete, however the previously active vector table was not SSI-managed. OUTTOKEN value is 0. This is a SWAP request error. Action: None. |
04 (04) | 900 (384) | Equate Symbol: IEFSSI_QUERY_INCOMPLETE Meaning: The data returned by the QUERY request may be incomplete. This is a QUERY request error. Action: Check the JQRY_INCOMPLETE flag for each subsystem that was queried. |
08 (08) | 00 (000) | Equate Symbol: IEFSSI_SUBSYSTEM_UNKNOWN Meaning: The subsystem is not defined to the SSI. Action: Correct the subsystem name or define a subsystem with either the IEFSSI macro or the SETSSI command. |
08 (08) | 04 (004) | Equate Symbol: IEFSSI_NON_DYNAMIC Meaning: The subsystem is not dynamic. Action: ReIPL the system and define the target subsystem with either the IEFSSI macro, the SETSSI command, or the keyword format IEFSSNxx parmlib member entry. Note that once a subsystem has been defined, it cannot be deleted or defined again as dynamic. |
08 (08) | 08 (008) | Equate Symbol: IEFSSI_BAD_VT_TOKEN Meaning: The SSVT token does not correspond to a valid SSVT table. Action: Correct the token. The token must be one that was returned by either the IEFSSVT REQUEST=CREATE macro, the IEFSSI REQUEST=DEACTIVATE macro, or the IEFSSI REQUEST=SWAP macro. |
08 (08) | 12 (00C) | Equate Symbol: IEFSSI_INVALID_NAME Meaning: The subsystem name or the routine name contains characters that are not valid. Action: Correct the subsystem name by removing the characters that are not valid. |
08 (08) | 16 (010) | Equate Symbol: IEFSSVT_INIT_PARMS Meaning: The initialization routine parameter string is too long. Action: Correct the parameter string so that it is no longer than 60 characters. |
12 (0C) | 100 (064) | Equate Symbol: IEFSSI_DUPLICATE_SUBSYSTEM Meaning: The subsystem already exists. This is an ADD request error. Action: Do not perform the ADD request if the existing subsystem is one you want. If the existing subsystem is not the one you want, select another name for the new subsystem, which does not conflict with the name of any existing subsystem name. You can use the IEFSSI REQUEST=QUERY macro to find all existing names. |
12 (0C) | 101 (065) | Equate Symbol: IEFSSI_INITRTN_NOT_FOUND Meaning:
A usable copy of this initialization routine could not be found. This
is an ADD request error. For example:
Action: Correct the initialization routine name or make sure it is present in either LINKLIB or LPALIB, and is APF authorized. |
12 (0C) | 102 (066) | Equate Symbol: IEFSSI_INITRTN_ABEND Meaning: The initialization routine ended abnormally. This is an ADD request error. Action: Check the dump produced by the abend and correct the problem with the initialization routine. |
12 (0C) | 103 (067) | Equate Symbol: IEFSSI_ADD_STORAGE Meaning: Unable to obtain storage for the subsystem definition. This is an ADD request error. Action: Check the current use of the system storage to determine why storage was not available. Retry the request later in case storage has become available. |
12 (0C) | 200 (0C8) | Equate Symbol: IEFSSI_SUBSYSTEM_ACTIVE Meaning: The subsystem is already active. This is an ACTIVATE request error. Action: None. |
12 (0C) | 201 (0C9) | Equate Symbol: IEFSSI_ACT_NO_ELIGIBLE_VT Meaning: The SSVT is not specified and a valid default is not available. This is an ACTIVATE request error. Action: Provide an SSI-managed SSVT using the IEFSSVT REQUEST=CREATE macro. |
12 (0C) | 500 (1F4) | Equate Symbol: IEFSSI_SWAP_NO_ELIGIBLE_VT Meaning: The SSVT is not specified and a valid default is not available. This is a SWAP request error. Action: Provide an SSI-managed SSVT using the IEFSSVT REQUEST=CREATE macro. |
12 (0C) | 502 (1F6) | Equate Symbol: IEFSSI_SWAP_ALREADY_ACTIVE Meaning: The SSVT that is to be made active (specified by the INTOKEN field) is already active. This is a SWAP request error. Action: None. |
12 (0C) | 900 (384) | Equate Symbol: IEFSSI_QUERY_STORAGE Meaning: Unable to obtain storage for an output of the QUERY request. This a QUERY request error. Action: Check the current use of the system storage to determine why storage was not available. Retry the request later in case storage has become available. |
20 (14) | — | Equate Symbol: IEFSSI_SYSTEM_ERROR Meaning: System error Action: Investigate the following possible
causes:
|
24 (18) | — | Equate Symbol: IEFSSI_UNAVAILABLE Meaning: The IEFSSI macro has been invoked too early during system initialization. Action: Delay the invocation of the IEFSSI macro to a later point in the IPL. |
IEFSSI REQUEST=ADD,SUBNAME=SNAME,INITRTN=INITPGM, X
INITPARM=IPARMS,INITPLEN=5,CONSNAME=ICONSOLE, X
RETCODE=RETURN_CODE,RSNCODE=REASON_CODE
⋮
SNAME DC CL4'FRED'
INITPGM DC CL8'FREDPGM '
IPARMS DC CL60'HELLO'
ICONSOLE DC CL8'FREDCONS'
⋮
WORKAREA DSECT 0F
RETURN_CODE DS F
REASON_CODE DS F
WORKLEN EQU *-WORKAREA
IEFSSI REQUEST=ACTIVATE,SUBNAME=SNAME,INTOKEN=SSVTTOK, X
RETCODE=RETURN_CODE,RSNCODE=REASON_CODE
⋮
IEFSSI REQUEST=OPTIONS,SUBNAME=SNAME,COMMAND=YES,REQDSUB=PRI, X
RETCODE=RETURN_CODE,RSNCODE=REASON_CODE
IEFSSI REQUEST=DEACTIVATE,SUBNAME=SNAME,OUTTOKEN=SSVTTOK, X
RETCODE=RETURN_CODE,RSNCODE=REASON_CODE
IEFSSI REQUEST=SWAP,SUBNAME=SNAME,INTOKEN=NEWTOK, X
OUTTOKEN=OLDTOK, X
RETCODE=RETURN_CODE,RSNCODE=REASON_CODE
LA 5,FREDCB Get address of subsystem control block
ST 5,DATA1 Store address
LA 4,DATA1 Get address of field containing pointer
IEFSSI REQUEST=PUT,SUBNAME=SNAME,SUBDATA1=(4), X
RETCODE=RETURN_CODE,RSNCODE=REASON_CODE
IEFSSI REQUEST=GET,SUBNAME=SNAME,SUBDATA1=(5), X
RETCODE=RETURN_CODE,RSNCODE=REASON_CODE
IEFSSI REQUEST=QUERY,SUBNAME=SNAME, X
WORKAREA=WAREA, X
RETCODE=RETURN_CODE,RSNCODE=REASON_CODE
⋮
L R5,WAREA
USING JQRY_HEADER,R5
L R0,JQRYLEN
STORAGE RELEASE,LENGTH=(0),ADDR=(R5)
⋮
SNAME DC CL4'JES*'
WAREA DS A
IEFJSQRY