A U3336 abend is for program checks during execution. Here are some common causes:
Uninitialized or improperly initialized fields.
Chapter 4 of the Getting Started Guide details upgrade considerations. Note especially this excerpt from page 4:
Numeric fields should be initialized or values moved in prior to any arithmetic operations. EBCDIC fields should be initialized to zeros (X'F0F0....'). Blanks are accepted, but not recommended. Packed fields should be initialized to packed zeros (X'....000C'). Binary fields should be initialized to binary zeros (X'0000'). The most convenient way to initialize storage at the beginning of a job is with an EQUate statement: EQU PK-FIELD WST1-3-P ZERO.
It should not be assumed that an area of storage is initialized properly for arithmetic operations.
Increase in field size of special area.
The Page NumbeR (PNR) field has been expanded from 3 to 4 bytes. All references to PNR must be expanded: PNR1-3 to PNR1-4.
Migration of working storage areas WST and SAV from 24-bit to 31-bit addressing.
Beginning with Release 15.1 VISION:Report uses 31-bit addressing. 24-bit external subroutines may fail if parameter lengths are not defined. You have 2 choices:
- Assemble & link the called user programs as AMODE=31,
- Add an ending offset to EQU statements for all parameters passed to the called programs to define their length.
For example in CALL USERPGM PARM EQU PARM WST1 has a default length of 1 byte.
EQU PARM WST1-20 has a length of 20.
The VISION:Report 24-bit assist feature will copy a parameter using its defined length from VISION:Report 31-bit storage to a temporary 24-bit storage area that is addressable by the user's AMODE=24 programs.
The edit on a move to a pointer operated incorrectly in Release 15.0 and was fixed in Release 15.0 via a PTF and via corrections to source in subsequent releases. A new feature was introduce in 15.1 to increase the flexibility of using edited fields. Please review the last paragraph on page 3-83 of the Reference Manual:
The option EDITALL increases the power for moving fields with edit masks to areas other than the PRT area. If EDITALL=NO, then the edit masks or codes are only in effect if the target area is PRT. If EDITALL=YES, then the edit codes would affect all areas.
Add EDITALL=YES to the OPTION statement in the application
change EDITALL=YES in the QJOPTION block to set it for the entire site.
There are also a few instances where the U3336 is issued due to a defect in the product that have been resolved by fixes.
Please open an issue with Technical Support to report the problem and request all available maintenance.