SJFREQ SWBTU_MERGE service
Use the SWBTU_MERGE service to merge a list of base SWBTUs with a list of merge SWBTUs that contain modifications. An application can also use the SWBTU_MERGE service to indicate keys to be removed from a list of SWBTUs.
Programming requirements
You must provide input information in the SWBTU_MERGE parameter list (IEFSJSMP).
In addition to the IEFSJSMP parameter list, you can provide an erase list. An erase list is a contiguous set of text units that you request to be erased from a base SWBTU. An erase list is required when you set SJSMETUP and SJSMETUS. If only a merge SWBTU and erase list are provided on input, SWBTU_MERGE validates the erase list, but does not apply it to the resulting SWBTU.
SJFREQ SWBTU_MERGE input parameters
- SJSMID
- The identifier ‘SJSM’ of the SWBTU_MERGE parameter list. Assign the symbolic equate SJSMCID to this field.
- SJSMVERS
- The current version number of the SWBTU_MERGE parameter list. Assign the symbolic equate SJSMCVER to this field.
- SJSMFLAG
- The environment control flag.
- SJSMNOCU
- Indicates whether the SJF environment is preserved from call to call or obtained for each call. Set to one to preserve the environment from call to call. Set to zero to obtain a new environment for a call.
- SJSMLEN
- The length of the SWBTU_MERGE parameter list (IEFSJSMP). Assign the symbolic equate SJSMLGTH to this field.
- SJSMSTOR
- The local working storage pointer or zero. This field must contain zero on the first SWBTU_MERGE call. On subsequent calls, the field contains the value returned from the most recent SWBTU_MERGE call. Use the value returned for subsequent calls.
- SJSMAREA
- The address of the area to which a single SWBTU is returned after SWBTU_MERGE processing. SJSMSIZE contains the size of this area.
- SJSMSIZE
- The length of the area to which a single SWBTU is returned after SWBTU_MERGE processing. Specify the size of SJSMAREA in this field.
- SJSMSWBN
- The number of SWBTU pointers in the base SWBTU pointer list. This field can be zero if the address of the base SWBTU pointer list (SJSMSWBA) is also zero and you specify a merge SWBTU pointer list.
- SJSMSWBA
- The address of the base SWBTU pointer list. You can specify zero for this value if the number of SWBTU pointers in the base SWBTU pointer list (SJSMSWBN) is zero and you specify a merge SWBTU pointer list.
- SJSMMTUP
- The address of the merge SWBTU pointer list. You can specify zero for this value if the number of SWBTU pointers in the merge SWBTU pointer list (SJSMMTUN) is zero and you specify a base SWBTU pointer list.
- SJSMMTUN
- The number of SWBTU pointers in the merge SWBTU pointer list. You can specify zero for this value if the address of the merge SWBTU pointer list (SJSMMTUP) is zero and you specify a base SWBTU pointer list.
- SJSMETUS
- The number of elements contained on input in the erase text unit list area. You can specify zero for this value if the address of the erase text unit list area (SJSMETUP) is zero.
- SJSMETUP
- The address of the erase text unit list area. You can specify zero for this value if the address of the erase text unit list area (SJSMETUS) is zero.
- SJSMJDVT
- Enter zero for this field on input. This field must contain zero on the first SWBTU_MERGE call. On subsequent calls, the field contains the value returned from the most recent SWBTU_MERGE call. Use the value returned for subsequent calls.
- SJSMWARN
- Set on to indicate that processing should continue after allowable errors. Clear this field so that processing does not continue after allowable errors. Allowable errors are described “Merging SWBTUs” in z/OS MVS Programming: Authorized Assembler Services Guide.
- SJSMBYMV
- Set on to indicate whether the merge SWBTU text units should be validated.
- SJSMBYEV
- Set on to indicate whether the erase text units' keys should be validated.
- SJSMSBTL
- When SJSMSWBA and SJSMSWBN contain values, this field must contain the mapping of the base SWBTU pointer list. When SJSMMTUP and SJSMMTUN contain values, this field must contain the mapping of the merge SWBTU pointer list.
SJFREQ SWBTU_MERGE output parameters
- SJSMREAS
- Contains a reason code returned from the SWBTU_MERGE service. This field contains a value when register 15 contains a return code other than zero.
- SJSMAREA
- Contains a pointer to the output SWBTU.
- SJSMTULN
- Contains the size of the output SWBTU. The size is the total size of the prefix and all the text units.
- SJSMMKER
- If a validation error occurred, this field contains the key from the first merge SWBTU text unit in the merge SWBTU list where SWBTU_MERGE encountered an error. Otherwise, this field contains zero.
- SJSMEKER
- If a validation error occurred, this field contains the key from the first erase SWBTU in the erase SWBTU list where SWBTU_MERGE encountered the error. Otherwise, this field contains zero.
- SJSMJDVT
- If a value is returned in this field, use the returned value in this field for subsequent uses of the service.
- SJSMRETC
- The return code from the service in which the error was encountered.
- SJSMERRS
- This field contains a value when certain errors occur. See Table 2 for descriptions of the errors.
- SJSMERRP
- The point in the base or merge SWBTU pointer list entry at which an error was encountered.
SJFREQ SWBTU_MERGE ABEND codes
SJFREQ SWBTU_MERGE might abnormally terminate with abend code X'054'. See z/OS MVS System Codes for an explanation and programmer response for this code.
SJFREQ SWBTU_MERGE Return and reason codes
SJFREQ SWBTU_MERGE return codes appear in register 15. When SJFREQ returns control to your program, SJSMREAS contains a reason code if register 15 contains a nonzero value. Return and reason codes are defined in macro IEFSJRC. The following table identifies the hexadecimal return and reason code combinations, tells what each means, and recommends an action you should take. Table 2 lists and describes additional reason codes that appear in output field SJSMERRS when certain errors occur.
Return Code | Reason Code | Meaning and Action |
---|---|---|
0 | 000 | Meaning: SWBTU_MERGE processing
completed successfully. Action: None. |
0 | 0CA | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, the value
in SJSMMKER or SJSMEKER was ignored. SJSMMKER or SJSMEKER contains
a key in error. Action: Determine if it is acceptable for the information in SJSMMKER or SJSMEKER to be ignored. |
0 | 0CB | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, the text unit
count for the key that appears in SJSMMKER is not valid. All data
for this text unit is ignored. Action: Determine if it is acceptable for the text unit data to be ignored. |
0 | 1F4 | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, a text unit
length in a length-value pair for the key that appears in SJSMMKER
is not valid. All data for this text unit is ignored. Action: Check the length specified for the key that appears in SJSMMKER. Determine if it is acceptable for the text unit to be ignored. |
0 | 1F5 | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, a text unit
value in a length-value pair for the key that appears in SJSMMKER
is not valid. All data for this text unit is ignored. Action: Check the value specified for the key that appears in SJSMMKER. Determine if it is acceptable for the text unit to be ignored. |
0 | 1F6 | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, a numeric
value of a length-value pair in a text unit exceeds the maximum allowable
value. SJSMMKER contains the key from the text unit that is in error.
All data for this text unit is ignored. Action: Check the value specified in the text unit and determine if it is acceptable for the text unit to be ignored. |
0 | 1F7 | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, a numeric
value of a length-value pair in a text unit is less than the minimum
allowable value. SJSMMKER contains the key from the text unit that
is in error. All data for this text unit is ignored. Action: Check the value specified in the text unit and determine if it is acceptable for the text unit to be ignored. |
0 | 1FE | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, a character
value level length in a text unit exceeds the maximum allowed for
character data. SJSMMKER contains the key from the text unit that
is in error. All data for this text unit is ignored. Action: Check the value specified in the text unit and determine if it is acceptable for the text unit to be ignored. |
0 | 1FF | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, the number
of levels for a character value in a text unit exceeds the maximum
allowed. SJSMMKER contains the key from the text unit that is in error.
All data for this text unit is ignored. Action: Check the value specified in the text unit and determine if it is acceptable for the text unit to be ignored. |
0 | 200 | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, the first
character of the level in the character value in a text unit is not
valid for character data. SJSMMKER contains the key from the text
unit that is in error. All data for this text unit is ignored. Action: Check the value specified in the text unit and determine if it is acceptable for the text unit to be ignored. |
0 | 201 | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, a character
is not valid for character data. The incorrect value is not the first
character of the level in the character value in a text unit. SJSMMKER
contains the key from the text unit that is in error. All data for
this text unit is ignored. Action: Check the value specified in the text unit and determine if it is acceptable for the text unit to be ignored. |
0 | 226 | Meaning: Program error.
SWBTU_MERGE processing completed successfully; however, a text unit
contained a text character that is outside the range X'40' - X'FE'.
SJSMMKER contains the key from the text unit that is in error. All
data for this text unit is ignored. Action: Check the value specified in the text unit and determine if it is acceptable for the text unit to be ignored. |
0 | 227 | Meaning: SWBTU_MERGE processing
completed successfully; however, the sequence of characters in a text
unit is not valid. SJSMMKER contains the key from the text unit that
is in error. All data for this text unit is ignored. Action: Check the value specified in the text unit parameter and determine if it is acceptable for the text unit to be ignored. |
0 | 228 | Meaning: SWBTU_MERGE processing
completed successfully; however, there are bits on in the text unit
parameter that the system does not recognize. SJSMMKER contains the
key from the text unit that is in error. All data for this text unit
is ignored. Action: Check the value specified in the text unit parameter and determine if it is acceptable for the text unit to be ignored. |
0 | 76C | Meaning: SWBTU_MERGE processing
completed successfully. The resulting SWBTU (pointed to by SJSMAREA)
has a prefix and no text units. Action: None required. However, you might take some action based on your application. |
4 | 0C8 | Meaning: Program error.
The specified verb is not defined to the system. Action: Specify a valid verb. |
4 | 0CA | Meaning: Program error.
The system does not recognize the text unit key. SJSMMKER or SJSMEKER
contains the key from the text unit that is in error. All data for
this text unit is ignored. Action: Check the text unit key. Correct the key and issue the SJFREQ macro again. |
4 | 0CB | Meaning: Program error.
The count in a text unit is not valid. SJSMMKER contains the key for
the text unit that is not valid. Action: Check the text unit count. Correct the count and issue the SJFREQ macro again. |
4 | 1F4 | Meaning: Program error.
A length in a length-value pair in a text unit is not valid. SJSMMKER
contains the key for the text unit that is not valid. Action: Check the length. Correct the length and issue the SJFREQ macro again. |
4 | 1F5 | Meaning: Program error.
A text unit value in a length-value pair is not valid. SJSMMKER contains
the key for the text unit that is not valid. Action: Check the value. Correct the value and issue the SJFREQ macro again. |
4 | 1F6 | Meaning: Program error.
A numeric value of a length-value pair in a text unit exceeds the
maximum allowable value. SJSMMKER contains the key from the text unit
that is in error. Action: Check the value. Correct the value and issue the SJFREQ macro again. |
4 | 1F7 | Meaning: Program error.
A numeric value of a length-value pair in a text unit is less than
the minimum allowable value. SJSMMKER contains the key from the text
unit that is in error. Action: Check the value. Correct the value and issue the SJFREQ macro again. |
4 | 1FE | Meaning: Program error.
A character value level length in a text unit exceeds the maximum
allowed for character data. SJSMMKER contains the key from the text
unit that is in error. Action: Check the value specified in the text unit. Correct the value and issue the SJFREQ macro again. |
4 | 1FF | Meaning: Program error.
The number of levels for a character value in a text unit exceeds
the maximum allowed. SJSMMKER contains the key from the text unit
that is in error. Action: Check the value specified in the text unit. Correct the value and issue the SJFREQ macro again. |
4 | 200 | Meaning: Program error.
A character in a text unit is not valid for character data. The character
is the first character in the level in the text unit. SJSMMKER contains
the key from the text unit that is in error. Action: Check the value specified in the text unit. Correct the value and issue the SJFREQ macro again. |
4 | 201 | Meaning: Program error.
A character is not valid for character data. The character is not
the first character of the level in the character value in a text
unit. SJSMMKER contains the key from the text unit that is in error. Action: Check the value specified in the text unit. Correct the value and issue the SJFREQ macro again. |
4 | 206 | Meaning: A text unit key
contained hex zeros. Action: Check the text unit key value specified in the text unit. Correct the value and issue the SJFREQ macro again. |
4 | 226 | Meaning: Program error.
A text unit contained a text character that is outside the range X'40' - X'FE'.
SJSMMKER contains the key from the text unit that is in error. Action: Check the value specified in the text unit. Correct the value and issue the SJFREQ macro again. |
4 | 227 | Meaning: The sequence of
characters in a text unit is not valid. SJSMMKER contains the key
from the text unit that is in error. Action: Check the value specified in the text unit parameter. Correct the value and issue the SJFREQ macro again. |
4 | 228 | Meaning: There are bits
on in the parameter that the system does not recognize. SJSMMKER contains
the key from the text unit that is in error. Action: Check the value specified in the text unit parameter. Correct the value and issue the SJFREQ macro again. |
4 | 76D | Meaning: Program error.
The output area (identified by SJSMAREA and SJSMSIZE) is not large
enough for the resulting SWBTU. Action: Increase the size of the output area and issue the SJFREQ macro again. |
4 | 76E | Meaning: Program error.
One of the following occurred:
Action: Supply the correct values for SJSMSWBA and SJSMSWBN and issue the SJFREQ macro again. |
4 | 76F | Meaning: Program error.
One of the following occurred:
Action: Supply the correct values for SJSMMTUP and SJSMMTUN and issue the SJFREQ macro again. |
4 | 770 | Meaning: Program error.
One of the following occurred:
Action: Supply the correct values for SJSMETUP and SJSMETUS and issue the SJFREQ macro again. |
4 | 771 | Meaning: Program error.
Either the output area address (SJSMAREA) is zero or the output area
size (SJSMSIZE) is not greater than zero. Action: Check the values in SJSMAREA and SJSMSIZE and determine which is incorrect. Specify valid values and issue the SJFREQ macro again. |
4 | 772 | Meaning: Program error.
One of the following happened:
Action: Do one of the following:
|
4 | 773 | Meaning: Program error.
The verb name in the merge SWBTU list does not match the verb name
in the base SWBTU list. Action: Supply input for the same verb in both the base SWBTU list and the merge SWBTU list. |
4 | 774 | Meaning: Program error.
One of the following occurred:
Action: Ensure that the constant SJSMCVER is used in field SJSMVERS of the input parameter list and that the constant SJSMLGTH is used in field SJSMLEN of the input parameter list. |
4 | 7A1 | Meaning: Program error.
The base SWBTU list contains an error. Action: Check output fields SJSMERRP and SJSMERRS. SJSMERRP contains the address of a SWBTU that is in error. SJSMERRS may contain a reason code that indicates an error in the base or merge SWBTU list. See Table 2 for the reason code descriptions. |
0C | 000 | Meaning: System error. The
system could not obtain storage for this request. Action: Inform your system programmer of this problem. |
10 | 000 | Meaning: System error. The
ESTAE-type recovery routine failed. Action: Inform your system programmer of this problem. |
14 | 000 | Meaning: System error. SJF
encountered a condition that caused an abnormal termination. Action: Check the input parameters, particularly any pointer fields, to determine if the input values are correct. |
18 | 000 | Meaning: System error. The
service routines for SJFREQ are not available. Action: SJF did not initialize properly. Contact the appropriate IBM® support personnel. |
Output field SJSMERRS contains a reason code when certain errors occur. Table 2 lists the reason codes and their meanings.
Return Code | Reason Code | Meaning and Action |
---|---|---|
4 | 018 | Meaning: Program error.
The application did not supply either the base SWBTU list or the merge
SWBTU list. Action: Determine which list is missing. Supply the missing list and issue the SJFREQ macro again. |
4 | 019 | Meaning: Program error.
The prefix for either the base SWBTU list or merge SWBTU list is not
valid. Action: Determine which prefix is not valid. Supply the correct prefix and issue the SJFREQ macro again. |
4 | 028 | Meaning: Program error.
The verb and label values in either the base SWBTU list or the merge
SWBTU list do not match. Action: Determine which pair does not match. Correct the information and issue the SJFREQ macro again. |