SET


The SET primary command enables you to override the system processing defaults. A value set by a keyword of the SET command is effective until it is replaced by another SET primary command using that keyword. Multiple SET primary commands can be specified in a single execution. Some system processing defaults can be overridden by an individual command statement.

When used, the SET primary command requires at least one keyword. Each keyword can be used only once. Optional keywords can be entered in any order

image2021-3-11_11-55-43.png

CHECKPOINT

Sets the checkpoint threshold.

The CHECKPOINT keyword controls how frequently checkpoints are issued. Checkpoints are issued in a BMP environment and a DL/I environment if a disk log is used and the IMS parameter specifies BKO=Y.

The checkpoint threshold is compared to the update weight value to determine when to take a checkpoint. The update weight is managed as follows:

  • When a checkpoint is taken, it is set = 0
  • When insert, change or delete is done, +20
  • If deleted dependents are to be written to audit trail, +5 for each
  • If update weight is not = 0, +5 for each root read

At the start of processing a statement, if the update weight is greater than half the checkpoint threshold, File-AID for IMS/FLEX takes a checkpoint. While processing a statement, if the update weight is greater than the checkpoint threshold, File-AID for IMS/FLEX takes one checkpoint before reading the next root with a unique key.

The default checkpoint threshold is 500.

MAXCALLS

Sets the maximum number of DL/I calls allowed per command statement during execution. The number includes all calls to IMS needed to satisfy a command request including, segment retrieval for specific segment processing and skip processing.

The value specified should be somewhat higher than the total number anticipated.

If the number of DL/I calls for any command exceeds the MAXCALLS number, the step is terminated.

MAXERRORS

Sets the maximum number of non-critical execution errors allowed per command statement before terminating the command statement. The number of current errors is reset to 0 prior to each primary command statement.

Non-critical errors are counted and compared against the specified MAXERROR number. If the error count is less than the specified number, command processing continues. If the count is equal to or greater than the specified number, processing stops for this command statement.

The following conditions are included in the error count:

  • IMS status code 'V1' on an insert or replace call. V1 is returned if the length of a variable length segment is invalid. This error should not occur because this condition is checked for during the validation phase. Error message B913 is issued for INSERT and B916 is issued for REPLACE.
  • IMS status code 'RX' on a replace call. RX is returned if the replace call is not valid based on the logical relationship replace rules. This error should not occur because this condition is checked for during the validation phase. Error message B918 is generated.
  • IMS status code 'DA' on a replace call. DA is returned if the replace call attempts to change a key field. This error should not occur because this condition is checked for during the validation phase. Error message B912 is generated.
  • IMS status code 'IX' on an insert call. IX is returned if the insert call is not valid based on the logical relationship insert rules. This error is based on the insert rules and the absence of a logical parent in the database. Error message B908 is generated.
  • IMS status code 'NI' on a replace or an insert call. NI is returned if the update will result in a duplicate key in a secondary index that does not allow duplicate keys. Error message B919 is generated on a replace call. Error message B909 is generated on an insert call.
  • IMS status code 'II' on an insert call. II is returned if the insert will result in a segment with a duplicate key. Error message B907 is generated.
  • IMS status code 'DX' on a delete call. DX is returned if the delete call was not valid based on the logical relationship delete rules. This error is based on the delete rules and the delete status of segments in the database. Error message B920 is generated.
  • IMS status code 'GE' on an insert call. GE can occur on an insert of a logical child when the logical parent or a parent of the logical parent to be inserted does not exist. Error message B910 is generated.

Some error conditions, most of which should never occur, will result in an abnormal termination. Error messages in the range of B600 through B9xx fall into this category.

Processing terminates or continues to the next command statement depending on the SKIP/NOSKIP value of the PROCESS keyword.

The default maximum number of errors is 1.

PRINT

Modifies the system default print values for all commands.

  • CALL/NOCALL Print/do not print DL/I call information for each DL/I call.
  • PCB/NOPCB Print/do not print the PCB information for each DL/I call.
  • SGM/NOSGM Print/do not print segment.
  • FPRINT/SPRINT Formatted mode/unformatted mode.

SGM/NOSGM and FPRINT/SPRINT can be temporarily overridden by the PRINT primary command or sub-command. These values are applicable to the PRINT function only, they do not control the printing of segments that are inserted, deleted, or replaced.

Multiple values must be enclosed in parentheses and separated by a comma. For example:

SET PRINT=(CALL,PCB,SPRINT)

The defaults are NOCALL, NOPCB, SGM, and FPRINT

PROCESS

Modifies the system processing default when a non-critical error is encountered.

The default is NOSKP.4 hours

  • SKIP Skip to next command statement if a non-critical error occurs.
  • NOSKIP Terminate processing if a non-critical error occurs.

INPUT

Specifies the name of the PDS member to be used by the input processing function. See Input file variables: for a description of the relationship between the PDS member on the INPUT keyword and the value given with SET=INPUT(start,length,type).

The following considerations relate to the INPUT keyword:

  • Different members for different commands can be used within a single invocation of the product.
  • If a member is not given and the input function is used, the input file must be sequential or partitioned with the member name from the DD statement. If the member name is specified on the DD statement, it cannot be specified by SET INPUT=member.
  • Only one member per command statement is allowed.
  • The member is opened at the beginning and closed at the end of the command statement.
  • Member name must follow standard naming conventions.

OUTPUT

Specifies the name of the PDS member to use as output of the concatenated keys when CKEY is specified on the OPTION keyword of the COUNT primary command.

The following considerations relate to the OUTPUT keyword:

  • Different members for different commands can be used within a single invocation of the product.
  • If a member is not given, the process assumes that the output file is sequential.
  • Only one member per command statement is allowed.
  • The member is opened at the beginning and closed at the end of the command statement.

Member name must follow standard naming conventions.

LANGUAGE

Defines the application language used in field names and segment layout cross references.

The following considerations relate to the LANGUAGE keyword:

  • Only one LANGUAGE keyword can be specified per SET command statement.
  • Language is ignored when XREF=NONE on the PSB command statement.
  • Language applies to the next PSB statement.

ALLOW-SEQUENTIAL

Defines whether a statement that results in a database scan is to be allowed or considered as an error.

  • YES Allow the scan.
  • NO Consider scan as an error.

Examples

The following SET command statement changes the checkpoint threshold to 250. The input member is CHNGDATA. If the input member is not provided, the input file is assumed to be a non-partitioned sequential data set.

TYPE RUN;
PSB  PCB=2;
SET  CHECKPOINT=250 INPUT=CHNGDATA;

The first SET command statement in the following example sets the print values to print call information for each DL/I call, print the PCB information for each DL/I call, and print the data in unformatted mode. In addition, the system defaults are changed so that the process skips to the next command if a non-critical error occurs. A maximum of 500 DL/I calls is made. The output is named CUSTKEYS.

The second SET statement sets the maximum calls to 500, sets the maximum errors to 10, and names the output PARTKEYS.

TYPE RUN;
PSB  DBDNAME=CUSTPDBD;
SET  PRINT=(CALL,PCB,SPRINT) PROCESS=SKIP MAXCALLS=500 OUTPUT=CUSTKEYS;
:
PSB  DBDNAME=PARTDBD;
SET  MAXCALLS=500 MAXERRORS=10 OUTPUT=PARTKEYS;

In the following example, the checkpoint threshold is set to 200. The input member name is ORDRCHNG.

TYPE RUN;
PSB  PCB=2;
SET  CHECKPOINT=200 INPUT=ORDRCHNG;

Related topics

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC AMI DevX File-AID for IMS 23.01