Troubleshooting
Problem
When deleting and recompiling an OPM program, jobs that are using that program fail with a message CPC1220, denoting a message MCH3203 as the cause.
Resolving The Problem
Problem
When deleting and recompiling an OPM program, jobs that are using that program fail with a message CPC1220, denoting a message MCH3203 as the cause.
CPC1220 Completion 50 10/27/11 11:24:48.961615 QWTPITP2 QSYS 061A *EXT *N
Message . . . . : Job ended abnormally because of error code MCH3203.
Resolution
This behavior is to be expected when an OPM program is deleted while still in use. When an OPM program is deleted, the pointer to that program is no longer valid. Any jobs that are still using that program will be left with a hole in the call stack:
Examples
Call stack before deleting OPM program CLPGM1:
Type Program Statement Procedure
QCMD QSYS /0517
QUICMENU QSYS /00C1
1 QUIMNDRV QSYS /060F
2 QUIMGFLW QSYS /04D7
3 QUICMD QSYS /056E
QUOCPP QPDA /070B
QUOMAIN QPDA /011E
4 QUOCMD QSYS /01EA
CLPGM1 DCFREITA 300 /000B
CLPGM2 DCFREITA 300 /0009
QTEVIREF QSYS /0470
QTESTOPH QSYS _C_pep
QTESTOPH QSYS 200 main
Call stack after deleting OPM program CLPGM1:
Type Program Statement Procedure
QCMD QSYS /0517
QUICMENU QSYS /00C1
1 QUIMNDRV QSYS /060F
2 QUIMGFLW QSYS /04D7
3 QUICMD QSYS /056E
QUOCPP QPDA /070B
QUOMAIN QPDA /011E
4 QUOCMD QSYS /01EA
*N *N
CLPGM2 DCFREITA 400 /000D
QTEVIREF QSYS /0470
QTESTOPH QSYS _C_pep
QTESTOPH QSYS 200 main
The CPC1220 will be issued when the call stack returns to the *N entry.
This issue can be avoided by using the REPLACE(*YES) parameter on the compile commands instead of deleting and recompiling an active program. By using REPLACE(*YES), the current object is moved into QRPLOBJ instead of being deleted.
It can also be avoided by using ILE instead of OPM. By design, ILE 'activates' a copy of the program into memory. If the program gets moved or deleted, the activated copy will still be valid, thus avoiding messages CPC1220 and MCH3203.
When deleting and recompiling an OPM program, jobs that are using that program fail with a message CPC1220, denoting a message MCH3203 as the cause.
CPC1220 Completion 50 10/27/11 11:24:48.961615 QWTPITP2 QSYS 061A *EXT *N
Message . . . . : Job ended abnormally because of error code MCH3203.
Resolution
This behavior is to be expected when an OPM program is deleted while still in use. When an OPM program is deleted, the pointer to that program is no longer valid. Any jobs that are still using that program will be left with a hole in the call stack:
Examples
Call stack before deleting OPM program CLPGM1:
Type Program Statement Procedure
QCMD QSYS /0517
QUICMENU QSYS /00C1
1 QUIMNDRV QSYS /060F
2 QUIMGFLW QSYS /04D7
3 QUICMD QSYS /056E
QUOCPP QPDA /070B
QUOMAIN QPDA /011E
4 QUOCMD QSYS /01EA
CLPGM1 DCFREITA 300 /000B
CLPGM2 DCFREITA 300 /0009
QTEVIREF QSYS /0470
QTESTOPH QSYS _C_pep
QTESTOPH QSYS 200 main
Call stack after deleting OPM program CLPGM1:
Type Program Statement Procedure
QCMD QSYS /0517
QUICMENU QSYS /00C1
1 QUIMNDRV QSYS /060F
2 QUIMGFLW QSYS /04D7
3 QUICMD QSYS /056E
QUOCPP QPDA /070B
QUOMAIN QPDA /011E
4 QUOCMD QSYS /01EA
*N *N
CLPGM2 DCFREITA 400 /000D
QTEVIREF QSYS /0470
QTESTOPH QSYS _C_pep
QTESTOPH QSYS 200 main
The CPC1220 will be issued when the call stack returns to the *N entry.
This issue can be avoided by using the REPLACE(*YES) parameter on the compile commands instead of deleting and recompiling an active program. By using REPLACE(*YES), the current object is moved into QRPLOBJ instead of being deleted.
It can also be avoided by using ILE instead of OPM. By design, ILE 'activates' a copy of the program into memory. If the program gets moved or deleted, the activated copy will still be valid, thus avoiding messages CPC1220 and MCH3203.
[{"Type":"MASTER","Line of Business":{"code":"LOB68","label":"Power HW"},"Business Unit":{"code":"BU070","label":"IBM Infrastructure"},"Product":{"code":"SWG60","label":"IBM i"},"ARM Category":[{"code":"a8m0z0000000CHtAAM","label":"Programming ILE Languages"}],"ARM Case Number":"","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"All Versions"}]
Historical Number
627819387
Was this topic helpful?
Document Information
Modified date:
15 November 2024
UID
nas8N1011085