Parameters for the column repair exit

Register 1 points to a standard parameter list on entry to a column repair exit. The standard z/OS linkage parameter list contains a single 31-bit address of the column repair exit parameter list area.

The parameter list is included as part of the sample COBOL column repair exit, which is distributed as SCACSAMP(CECCOLVE).

Parameters that are passed to the column repair exit

The column repair exit parameter list consists of multiple fields as described in Table 1. Some of the fields contain the actual parameter value and other entries are pointers to areas that contain the actual value.

Table 1. Parameters passed to the column repair exit
Parameter list field name Area length Input or output Description
Parameter list version 2 bytes Input Informs the exit what version of the exit parameter list it communicates with. This parameter is provided for future extension. The only valid value is 1.
Column repair exit parameter list version 2 bytes Output The exit is expected to inform the caller what version of the exit parameter list it communicates with. The only valid value is 1.
User double words 8 bytes Input/output The user double word is initialized to binary zeroes before the initialization call. The exit can use this area for any purpose. The value that the exit puts in this area is returned to the exit for each subsequent call for the given subscription until the replication is stopped for the subscription.
Function code 4 bytes Input One of the following functions for which the exit is being invoked:
CREX-FUNC-INIT
CREX-FUNC-REPAIR
CREX-FUNC-TERM
User name 32 bytes Input Left-justified, space-padded user name that is associated with the operation. Spaces will occur in Change Data Capture operations.
Subscription name 64 bytes Input Left-justified, space-padded subscription name that is associated with the operation. Spaces will occur in non-Change Data Capture operations.
Source system ID 8 bytes Input Left-justified, space-padded, 8-byte unique identifier for the subscription. Spaces will occur in non-Change Data Capture operations.
Database type 8 bytes Input Left-justified, space-padded database type that is associated with the operation. Valid values:
$IMS
IMS data source
$VSAM
VSAM data source
Table name 20 bytes Input Left-justified, space-padded table or view name that is associated with the operation.
Schema name 8 bytes Input Left-justified, space-padded schema name for the table that is associated with the operation.
Column name 32 bytes Input Left-justified, space-padded column name that failed validation or conversion.
Native data type 1 byte Input The native data type that failed conversion. Valid values:
C
Mixed-mode character data with a fixed length
P
Packed decimal data
D
Floating-point data
F
32-bit signed binary value where the sign is in the high-order bit.
H
16-bit signed binary value where the sign is in the high-order bit.
V
Variable mixed-mode character data. Data is preceded by a 16-bit signed binary number that identifies the actual length of the data.
B
Fixed-length binary data
Native data signed 1 byte Input Value indicating whether native numeric data is signed:
Y
Data is signed
N
Data is unsigned
Native data length 4 bytes Input The length of the native data
Native data address 4 bytes Input The address of the native data that failed validation or conversion.

The exit cannot modify the contents of this area.

SQL data type 4 bytes Input The SQL data type for the data that is pointed to in the SQL data address. Possible values:
SQL-TYPE-SMALLINT
SQL-TYPE-INTEGER
SQL-TYPE-DECIMAL
SQL data length 4 bytes Input The length of the SQL data type for the data pointed to in the SQL data address.
SQL data precision 4 bytes Input The precision of the SQL data type for the data pointed to in the SQL data address.
SQL data scale 4 bytes Input The scale of the SQL data type for the data pointed to in the SQL data address.
SQL data address 4 bytes Input/output The address of the SQL data that failed validation or conversion. The value contains the server default repair value of -999s.

The exit can modify the contents of this area to change the repair value for the operation.

SQL data null indicator 1 bytes Input Value that indicates whether the SQL data supports NULL values:
Y
Data supports NULL values.
N
Data cannot be null
SQL action 4 bytes Input Data server action that is associated with the operation:
CREX-ACT-NONE                
CREX-ACT-DELETE              
CREX-ACT-INSERT              
CREX-ACT-UPDATE              
CREX-ACT-QUERY                
CREX-ACT-AFTR-DELETE
CREX-ACT-BFOR-DELETE
CREX-ACT-AFTR-INSERT
CREX-ACT-BFOR-INSERT
CREX-ACT-AFTR-UPDATE
CREX-ACT-AFTR-UPDATE
Return code 4 bytes Output One of the following values:
CREX-DEFAULT or CREX-SUCCESS
User server default behavior
CREX-REPAIRED
The exit provided a new repair value in the buffer that is pointed to by the SQL data address.
CREX-FAILED
The exit requests that the operation be terminated with a failure.
Reason code 4 bytes Output Setting the reason code to zero (CREX-REASON-0) indicates that the exit provided a replacement value for the invalid numeric data. The CECCREPX sample exit uses a replacement value of zeros.

Setting the reason code to 1 (CREX-REASON-NULL) indicates that the column is NULL. The CECCREPN sample exit uses this option when invalid data is found in a numeric column.

Diagnostic string 80 bytes Output This field is always set to low values on entry to the apply exit. The exit can use this area to return a null-terminated diagnostic string. The maximum length of the message is 79 bytes, allowing for the 1-byte null string terminator.