DBUTIL コマンドは JCL から実行され、IMS で BMP タイプのプログラムとして実行します。
構文:
//stepname PGM=pgmname,PARM=(BMP,DBUTIL,psbname)
//SYSIN DD *
jobcardstatements
パラメーター:
- psbname
- IMS データベースの PSB 名。DBUTIL は他のアプリケーションと同様に DL/I 呼び出しを発行するので、PCB は、制御文ファイルによって適用される呼び出しの適切な処理オプションを指定する必要があります。
- DLIcall
- psbname によって指定される IMS データベースに適用する DL/I 呼び出し。
- DBUTILspecialfunction
- psbname によって指定される IMS データベースに適用する DBUTIL 特殊関数。
- jobcardstatements
- これらの文には、DL/I データベース呼び出しや DBUTIL 特殊関数が含まれます。各文は次のようにフォーマットされる必要があります。
- 列 1 ~ 4
- 位置 1 ~ 4 には DL/I 呼び出し関数または DBUTIL 特殊関数が含まれます。サポートされるあらゆる DL/I データベース呼び出し、たとえば GHU、REPL、DLET、または ISRT などを指定するか、または DBUTIL 特殊関数を指定することができます。特殊関数のリストおよびその個々の説明については、DBUTIL 特殊関数を参照してください。
- 列 5
- 列 5 の空白でない文字は、次の行がその行の継続であることを示します。この行は、グループ化され 1 つの DL/I 呼び出しを形成するレコードのセットの 1 つになります。この継続を使用して IO 関数レコードを続けることはできません。
- 列 6 ~ 32768
- 次のような関数と関連付けられるデータです。
- DL/I 呼び出し関数およびその継続レコードでは、これは SSA です。
- IO 関数では、これは ISRT、REPL、DLET 呼び出しの I/O 領域です。可変長セグメントは、長さコードをデータ セグメントの最初の 2 バイトとして含む必要があります。
- DBUTIL 特殊関数では、これは関数に必要となる任意のデータです。
- ジョブ カード文の例
-
*Record Columns
*---+----10---+----20---+----30---+----40
*Set the PCB number
PCB= 03
*
*Issue get unique call with one SSA
GU TESTSEG1
*
*Issue get unique call with three SSAs.
*(Note the continuation)
GU XTESTSEG1*-(SEGKEY01 =10)
XTESTSEG2*-(SEGKEY02 =20)
TESTSEG3*-(SEGKEY03 =2000)
*
*Issue insert call with SSAs
ISRTXTESTSEG1*--(SEQFIELD =AA)
XTESTSEG2*--(SEQFIELD =BBBB)
XTESTSEG3
IO NEWSEGMENTDATA
DBUTIL の JCL の例
//DBUTILTEST EXEC PGM=DFSRRC00,PARM=(BMP,DBUTIL,SASTEST)
//SYSOUT DD SYSOUT=*
//IMSTRACE DD SYSOUT=*
//SYSIN DD *
PCB= 02
ISRTXPOF0ROOT
IO 000000000000000000000000100 POF0ROOT 100
ISRTXPOF0LEG
IO 0100 POF0LEG 0100
ISRTXPOF0ALOD
IO 000000000000000000000000001 POF0ALOD 1
ISRTXPOF0ALOD
IO 000000000000000000000000002 POF0ALOD 2
ISRTXPOF0ALOD
IO 000000000000000000000000003 POF0ALOD 3
ISRTXPOF0COMP
IO 00000 POF0COMP 0 CORRECT
ISRTXPOF0COMP
IO 00001 POF0COMP 1 WRONG
ISRTXPOF0COMP
IO 00002 POF0COMP 2
ISRTXPOF0COMP
IO 00003 POF0COMP 3
ISRTXPOF0LEG
IO 0200 POF0LEG 0200
ISRTXPOF0ROOT
IO 000000000000000000000000200 POF0ROOT 200
PCB= 02
FREE
GU XPOF0ROOT*D--(POFKEY =000000000000000000000000100)
XPOF0LEG *PD-(LEGNO =0100)
POF0ALOD*---
GNP POF0ALOD*---
GNP POF0ALOD*---
GNP POF0ALOD*---
GNP POF0COMP*F--(COMPKEY > )
/*
//*