With PTF RO52581, CAIRIM offers the following options for RIMPARMs for improved SYSPLEX parm sharing capability.
For example, you could code a data set name that includes system symbols on the RIMPARM LOADLIB optional keyword such that an APF failure on such a LOADLIB would let CAIRIM continue to the next RIMPARM statement.
ENDIF is a keyword that is used to terminate a corresponding IF keyword statement. The ENDIF keywords must equally match the number of IF keyword statements that are specified in a parameter file. If you have more ENDIF keyword statements than there are corresponding IF keyword statements, a syntax error occurs. The statement on which the error was found is returned.
ENDIF is only recognized as a keyword if it is the first verb that the Common Parameter File Reader Service on a given input statement reads. You can use comments on an ENDIF keyword statement. However, if extraneous data is found on a keyword statement, a syntax error occurs. The statement on which the error was found is returned.
If an ENDIF keyword statement is successfully processed, the statement is not returned to the caller. Conversely, the service begins reading the next statement.
The IF keyword statement is used to support "if" logic in a parameter file. Several cases exist for when a syntax error can be found on an IF keyword statement. For all syntax errors, the statement on which the error was found is returned.
The IF keyword takes on the form:
IF &symbol. [!]= (value0 [,value1] …)
The IF keyword statement is only recognized as a keyword if it is the first verb that the Common Parameter File Reader Service on a given input statement reads. One or more spaces must follow this keyword. If a space does not follow "IF," it is not treated as a keyword. IF keyword statements can be nested up to 12,287 levels.
If the service determines that the IF keyword statement is present, and the caller of the service specified SYMSUB=NO on the OPEN call, symbol substitution is done on the next data item found, &symbol., unconditionally.
Specifies a data item to compare against the values on the right side of the compare operator. It is passed to the #SYMSUB service. If it is found to be a defined symbol, it is substituted to its appropriate value (for example, if &symbol. was &SYSNAME., after substitution, &SYSNAME. is the name of the current system after substitution). &symbol. One or more spaces must follow &symbol. A syntax error occurs if a space does not follow it.
Identifies the compare operator. The valid operators are ‘=’ and "!=" which are interpreted as "equal" and "not equal" respectively. If the operator is ‘=’, the &symbol. is compared against the values on the right side of the compare operator and the IF keyword statement is evaluated as true if the &symbol. is equal to any compare values. If the compare operator is "!=", the &symbol. is compared against the values on the right side of the compare operator and the IF keyword statement is evaluated as true if the &symbol. is not equal to any compare values. One or more spaces must follow [!]=. A syntax error occurs if a space does not follow it.
Identifies the values to compare against the &symbol. based on the specified compare operator. This part of the IF keyword statement is parsed with the Parse and Scan Facility (PSF) Common Service. Up to 32 different compare values can be specified here. If more than one value is compared, enclose the values inside of parentheses and separate each value by a comma. If PSF finds a syntax error and an error message buffer is supplied by the caller on the READ request, an error message is returned in the error message buffer.
If any part of the IF keyword statement as described in its form is omitted, a syntax error occurs.
If an IF keyword statement is successfully processed, the statement is not returned to the caller. The service begins reading the next statement.
LOG and NOLOG are keywords that are used to control logging attributes of a parameter file.
When the LOG keyword is in use, each statement image in the parameter file is written to the system log. The message identifier CAMS504I prefixes each statement image in this case. Additionally, if the statement image contains a symbolic value that has been successfully substituted, the statement image that contains the substituted value is also written to the system log. The message identifier CAMS505I prefixes each statement image in this case.
Note: When reading from the Logical Parmlib Concatenation, statement images that contain symbolic values are only logged with the substituted values.
When the NOLOG keyword is in use, no records in the parameter file are written to the system log.
The LOG and NOLOG keywords can be used multiple times in a parameter file. The current log specification remains in effect until a different log specification is requested. The current log specification also remains in effect for parameter files that are opened with the INCLUDE keyword. Changes in the log specification in a parameter file that was opened with the INCLUDE keyword only remain in effect until the INCLUDE file is closed. After an INCLUDE file is closed, the logging attributes for the previous member carry on.
LOG and NOLOG are only recognized as keywords if they are the first verbs read in by the Common Parameter File Reader Service on a given input statement. You can use comments on the LOG and NOLOG keywords statements. However, if extraneous data is found on a keyword statement, a syntax error occurs and the statement on which the error was found is returned.
If a LOG keyword statement is successfully processed, the effect of the keyword takes effect immediately.
If a NOLOG keyword statement is successfully processed, the effect of the keyword takes effect beginning with the next statement image read in.
Note: In the following examples, assume that all statements are read while executing on a system name "SYS1" with the "z/OS" operating system.
Example: LOG
Assume that NOLOG is in effect at the time the first statement is read. The following input statements use LOG and NOLOG keywords:
LOG VERB1 KEYWORD1 = (&SYSNAME.) NOLOG VERB2 KEYWORD2 = (OPERAND2) Would be logged to the system log as: CAMS504I LOG CAMS504I VERB1 KEYWORD1 = (&SYSNAME.) CAMS505I VERB1 KEYWORD1 = (XE97) CAMS504I NOLOG
Example: Equal
The following input statements use an "equal" compare:
IF &SYSNAME. = SYS1
ECHO=YES
ENDIF
These statements cause echoing to be turned on for all proceeding RIMPARM statements, if the statement evaluates as true. ENDIF must be paired with an equal number of IF keyword statements.
Example: Not Equal
The following statements use a "not equal" compare:
IF &SYSNAME. != SYS1
SMPPARM = ON
LMPEXIT = YES
ENDIF
These statements skip the SMPPARM=ON statement and the LMPEXIT=YES statement because &SYSNAME. is substituted as "SYS1", and the "if not" statement evaluates as false. The skipped statements are processed but not returned to the caller on a READ request.
Example: Nested IF Statements
The following statements use nested IF keyword statements:
IF &OSNAME. = z/OS
ECHO = YES
IF &SYSNAME. = (SYS1, SYS2)
LOG
SMPPARM = ON
ENDIF
IF &SYSNAME. != (SYS1, SYS2)
NOLOG
LMPEXIT = YES
ENDIF
ENDIF
These statements cause echoing to be turned on if the operating system name is z/OS. If the &SYSNAME. is equal to SYS1 or SYS2, logging is turned on, and SMPPARM=ON is processed. If the &SYSNAME is not equal to SYS1 or SYS2, logging is turned off, and LMPEXIT=YES is processed.
Example: Symbol Substitution
The following statements use symbol substitution within a LOADLIB parm:
PRODUCT(CA DATACOM) VERSION(BD12) INIT(DBRIMPR) - LOADLIB(&LOADHLQ..DCR1200Z.SMPE.CAAXLOAD) - PARM(D247,DBSVCPR,TYP=3)
These statements cause the value for &LOADHLQ. to be substituted. The resulting statement must follow z/OS conventions for Partition Data Set(PDS) qualifier names. The resulting PDS is then checked for a member that is coded on the INIT statement.
|
Copyright © 2014 CA Technologies.
All rights reserved.
|
|