HALDB selective partition processing

You can restrict the processing of DL/I calls to a single HALDB partition or a range of HALDB partitions by using a DD statement with the ddname DFSHALDB to pass control statements. DFS HALDB must be provided in the JCL of the batch job, the BMP (Batch Message Processing dependent online region), or the JBP (Java™ Batch Processing dependent online region).

Control Statements for HALDB selective partition processing

Read syntax diagramSkip visual syntax diagram
>>-HALDB PCB=-(-+-nnnn-----+-,ppppppp-+---------+-)------------><
                '-dddddddd-'          '-NUM=yyy-'     

Each HALDB control statement must have a PCB keyword that contains the required parameters. The required parameters for an individual control statement must be on one line; no continuation is allowed. The input can consist of multiple HALDB control statements. There should be no duplication of DB PCB numbers. In the event of a duplication, the control statement that has been read the most recently overrides the previous statement.

Any HALDB control statement that is syntactically correct results in an entry within a table. The maximum number of entries in the table is 20. All subsequent statements that are read, even though syntactically correct, are ignored and result in a U0201 abend, unless a statement is a duplicate of an entry that is already in the table.

Parameter descriptions for HALDB selective partition processing

nnnn
The DB PCB number as the relative number of the DB PCB defined in the PSB.
dddddddd
The DB PCB label or name.
ppppppp
The partition name. This parameter is required.
NUM=yyy
The range of consecutive partitions that this PCB is restricted to using, starting with the named partition. The range of consecutive partitions is defined as the partition selection order, which is the next partition selected starting from the target partition named in the DFSHALDB statement. The next partition is determined using either the high keys defined for the HALDB or the processing order defined by the partition selection exit. This parameter is optional.

The following examples show how to use HALDB selective partition processing statements.

DFSHALDB for single partition restriction

HALDB PCB=(4,POHIDKA)
HALDB PCB=(PCBNUM2,POHIDJA)

DFSHALDB for range partition restriction

HALDB PCB=(3,PVHDJ5A,NUM=4)
HALDB PCB=(PCBNUM7,PVHDJ5B,NUM=3)

Report generated for HALDB selective partition processing

When you use HALDB selective partition processing, a report called “HALDB Selective Partition Processing” is generated in the SYSHALDB data set. This report shows the control statements that have been issued and the reason for accepting or rejecting each statement. Control statements that have been validated and accepted are shown as “Syntactically correct.” Other messages that might appear for syntactically correct statements, and their accompanying messages, are shown in the following table:

Table 1. Messages provided in the report generated for HALDB selective partition processing
Message Explanation
Duplicate, overrides previous statement A HALDB statement for the same PCB was already found. The current statement overrides the previous HALDB statement.
Ignored, number of valid statements exceeds 20 More than 20 HALDB statements were provided, but only 20 statements are allowed. Reduce the number of HALDB statements to 20 or fewer, and run the job again. This message results in an abend U0201.
NUM parameter must be non-zero numeric The partition range specified in the NUM keyword must be a non-zero value from 1 to 999.
NUM value exceeds three digits The partition range specified in the NUM keyword must be a non-zero value from 1 to 999.
An equal sign must follow NUM keyword An equal sign must follow the NUM keyword in the HALDB statement. Add an equal sign to the HALDB statement.
The NUM keyword is missing A comma was found after the partition name, but the NUM keyword was not present. Either verify the syntax of the positional parameters in the HALDB statement, or add the NUM keyword and the range of partitions for the restriction.
NUM parameter is missing The NUM keyword was found, but the NUM parameter value was not present. Either verify the syntax of the positional parameters in the HALDB statement, or add the NUM keyword and the range of partitions for the restriction.

For HALDB control statements that are not syntactically correct (statements that are processed and rejected), the messages and explanations that are issued are shown in the following table:

Table 2. Messages provided in the report generated for syntactically incorrect HALDB statements
Message Explanation
No HALDB statement type The DFSHALDB data set did not contain a HALDB statement. Add a HALDB statement to prevent this error.
A space must follow HALDB statement type The HALDB statement requires a space after HALDB and before the PCB keyword.
PCB keyword missing The required keyword PCB was not found. The PCB keyword must be present to process the HALDB statement successfully.
Equal sign must follow PCB keyword An equal sign did not follow the PCB keyword. The equal sign must follow the PCB keyword to process the HALDB statement successfully.
Open parenthesis must follow equal sign An open parenthesis did not follow PCB=. The open parenthesis must follow the PCB= to process the HALDB statement successfully.
Second parameter may be missing The HALDB partition must be provided. Either add the partition name, or verify that the syntax of the positional parameters is correct.
First parameter exceeds four digits The DB PCB number cannot exceed a four-digit value. Change the DB PCB number to the correct DB PCB number.
Delimiter is not a comma A comma is missing between parameter values. The comma is used as a delimiter for the positional parameters. Either add the comma, or verify that the syntax of the positional parameters is correct.
Partition name must start with an alpha The HALDB partition name must begin with a alphabetic character. Add the partition name or verify the syntax of the positional parameters is correct.
Delimiter is not a close parenthesis A closing parenthesis is missing from the HALDB statement. Add a closing parenthesis around the PCB parameters.
Partition name exceeds seven characters The HALDB partition name must be seven or fewer characters. Either add the partition name, or verify that the syntax of the positional parameters is correct.
Invalid character in partition name The HALDB partition name contains an invalid character. Either add the partition name, or verify that the syntax of the positional parameters is correct.
Statement contains all spaces The HALDB statement is missing. Add a valid HALDB statement.
Invalid statement input A HALDB statement was found, but it does not appear to be complete. Verify the syntax of the HALDB statement and the positional parameters specified.
Space must follow close parenthesis A space must follow the closing parenthesis. Add a space after the closing parenthesis.
First parameter missing The PCB number or label is missing. Either add the PCB name or label, or verify that the syntax of the positional parameters is correct.
Comma and part name missing Only the PCB number or label was provided in the HALDB statement. Either add the partition name, or verify that the syntax of the positional parameters is correct.
Partition name is missing The HALDB partition name must be provided in the HALDB statement. Either add the partition name, or verify that the syntax of the positional parameters is correct.
Partition name starts with numeric The HALDB partition name must begin with an alphabetic character. Either add the partition name, or verify that the syntax of the positional parameters is correct.
First parameter must not be zero The PCB number must be a non-zero number. Add a non-zero number for the DB PCB number.
Comment statement An asterisk was found in column one of the HALDB statement. This statement was skipped and considered a comment.

After all of the statements are validated, the job abnormally terminates with an abend code of U0201.