IMS

PL/I IMS アプリケーションの実行時に発生する可能性のある異常終了コードについて説明します。
U0260 異常終了
このメッセージは、通常は JOBLOG 内のメッセージとして表示されます。

この形式の異常終了の一般的な原因は、Open PL/I ユーザー プログラム (Intel プラットフォームで実行) が -bigendian コンパイラ オプションを使用してビルドされていないことです(-langlvl SAA2 でも同じ処理が可能です)。

U0476 異常終了
IMS プログラムを DFSRRC00 で BMP として実行しているときに U0476 異常終了が発生しました。呼び出しの JCL を表すスニペットは次のとおりです。
//STEP01 EXEC PGM=DFSRRC00,
//     PARM='BMP,REQUE,REQUEUE,,,,,,,,,,,&IMS,USERGP1'

アプリケーションの分析により、次の PLITDLI 文で U0476 が発生していることがわかりました。

CALL PLITDLI(NUM3, CHNG, ALT1_PCB_PTR,
TRN);

PL/I ソースの PROC 文に戻ると、ALT1_PCB_PTR が 3 番目のパラメーターとして指定されていることがわかります。

REQUE: PROC(TP_PCB_PTR,ERR_PTR,
ALT1_PCB_PTR ) OPTIONS(MAIN);

失敗したプログラムの CTF トレースから、渡された PCB は 2 つだけであることがわかりました。

09:11:30.946 7904 MF.RTS.PLI 6 0
: "systemIMS > REQUE 2 "

REQUE.PSB ファイルでは PCB が 1 つしか定義されていません。

PCB     TYPE=TP,EXPRESS=YES,MODIFY=YES                               
PSBGEN  LANG=PL/I,PSBNAME=REQUEUE,IOASIZE=2000                       
END    
注: IMS プログラムを BMP またはオンライン プログラムとして実行すると、IMS で 1 つの追加の PCB が自動的に追加されるか渡されます。

その後、間違った PSB がビルドされていたことが判明しました。正しい PSB で問題が解決されました。

PLITDLI 呼び出しでの予期しないエラーまたはジョブ ログの INVALID AIB メッセージ (あるいはその両方)
PLITDLI への呼び出しでアプリケーションから AI ステータス コードが返される場合、またはジョブ ログまたはコンソールに次のサンプル スニペットと同等のメッセージが含まれている場合、通常はエンタープライズ サーバー リージョンに対して IMS が有効になっていないことを示します。
注: エンタープライズ サーバー リージョンに対する IMS の有効化は、ESCWA の [General Properties] ページで行うことができます。
**** JCLCM0180I Job ready for execution. 
**** Execution on Server AAPL      Process       4132 
 
     20:37:53 JCLCM0188I JOB  STARTED 
 
     20:37:53 JCLCM0190I STEP STARTED   DIN043.DIN04305 
     20:37:53 JCLCM0206I ALLOCATION DEFERRED UNTIL OPEN - OMYINVP1 
     20:37:53 JCLCM0199I Program MFJRRC00 is non-COBOL   ASCII  Big-Endian    NOAMODE. 
     *MSG CWGUI.EXE -pid 04132  . 
     20:38:34 IMSRT0100E Local system rejected config info - Invalid AIB