バッチ・プログラムの再始動

データを更新するバッチプログラムを再起動するには、まず IMS バッチバックアウトユーティリティを実行し、最後に正常にチェックポイント ID を示した再起動ジョブを実行します。

このタスクについて

最後に成功したチェックポイントを見つけるためのガイドラインについては、「DL/I バッチチェックポイントIDの検索」 を参照してください。

例: JCL を使ったバッチ・チェックアウト
以下に示したスケルトン JCL 例は、PSB=IVP8CA と指定したときのバッチ・バックアウトの例です。
//ISOCS04  JOB 3000,ISOIR,MSGLEVEL=(1,1),NOTIFY=ISOIR,
//        MSGCLASS=T,CLASS=A
//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
//*                                                             *
//*  BACKOUT TO LAST CHKPT.                                     *
//*                  IF RC=0028 LOG WITH NO-UPDATE              *
//*                                                             *
//* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
//BACKOUT  EXEC PGM=DFSRRC00,
//        PARM='DLI,DFSBBO00,IVP8CA,,,,,,,,,,,Y,N,,Y',
//         REGION=2600K,COND=EVEN             |
//*                                           ---> DBRC ON
//STEPLIB DD  DSN=IMS.RESLIB,DISP=SHR
//IMS          DD   DSN=IMS.PSBLIB,DISP=SHR
//             DD   DSN=IMS.DBDLIB,DISP=SHR
//*
//* IMSLOGR  DD   data set is required
//* IEFRDER  DD   data set is required
//DFSVSAMP DD  *
OPTIONS,LTWA=YES
2048,7
1024,7
/*
//SYSIN DD DUMMY
/*
例: JCL を使ったDL/I バッチ・ジョブの再始動
運用手順では、 IMS XRST とシンボリック CHKP コールを使用して、アプリケーションプログラムの DL/I バッチジョブステップを再起動することができます。

BMP アプリケーション・プログラムは、Db2DL/I バッチ環境では再始動できません。 シンボリックチェックポイントレコードがアクセスされないため、 IMS ユーザーが異常終了する U0102。

異常終了または早期終了したバッチジョブを再起動するには、 z/OS® システムログまたはエラーが発生したジョブのSYSOUTリストから、そのジョブのチェックポイントIDを見つけます。 ジョブ・ステップを再始動する前に、DLIBATCH プロシージャー で CKPTID=value として指定したオプションにチェックポイント ID を 入れて、ジョブを渡してください。 デフォルトの接続名が使用されている場合は (つまり、接続名オプション が DDITV02 入力データ・セットに指定されていない場合)、再始動ジョブの ジョブ名は、問題を起こしたジョブと同じ名前にしなければなりません。 以下のスケルトン例を見てください。 そこでは、最後のチェックポイント ID 値は IVP80002 になっています。
//ISOCS04  JOB 3000,OJALA,MSGLEVEL=(1,1),NOTIFY=OJALA,
//        MSGCLASS=T,CLASS=A
//* ******************************************************************
//*
//* THE FOLLOWING STEP RESTARTS COBOL PROGRAM IVP8CP22, WHICH UPDATES
//* BOTH DB2 AND DL/I DATABASES, FROM CKPTID=IVP80002.
//*
//* ******************************************************************
//RSTRT    EXEC DLIBATCH,DBRC=Y,COND=EVEN,LOGT=SYSDA,
//  MBR=DSNMTV01,PSB=IVP8CA,BKO=Y,IRLM=N,CKPTID=IVP80002
//G.STEPLIB  DD
//         DD
//         DD  DSN=prefix.SDSNLOAD,DISP=SHR
//         DD  DSN=prefix.RUNLIB.LOAD,DISP=SHR
//         DD  DSN=SYS1.COB2LIB,DISP=SHR
//         DD  DSN=IMS.PGMLIB,DISP=SHR
//*        other program libraries
//* G.IEFRDER  data set required
//* G.IMSLOGR  data set required
//G.DDOTV02  DD  DSN=&TEMP2,DISP=(NEW,PASS,DELETE),
//         SPACE=(TRK,(1,1),RLSE),UNIT=SYSDA,
//         DCB=(RECFM=VB,BLKSIZE=4096,LRECL=4092)
//G.DDITV02  DD  *
  DB2X,SYS1,DSNMIN10,,A,-,BATCH001,,IVP8CP22
/*
//***************************************************************
//***  ALWAYS ATTEMPT TO PRINT OUT THE DDOTV02 DATA SET       ***
//***************************************************************
//STEP8     EXEC  PGM=DFSERA10,COND=EVEN
//STEPLIB   DD    DSN=IMS.RESLIB,DISP=SHR
//SYSPRINT  DD    SYSOUT=A
//SYSUT1    DD    DSNAME=&TEMP2,DISP=(OLD,DELETE)
//SYSIN     DD    *
CONTROL  CNTL K=000,H=8000
OPTION   PRINT
/*
//