OpenFrame HiDBのその他のユーティリティ

本章では、OpenFrame HiDBデータベースのその他のユーティリティについて説明します。

1. 概要

以下は、その他のユーティリティです。各ユーティリティについての詳細は、各節で説明します。

プログラム名 説明

DFSDDLT0

アプリケーション・プログラムとは独立してDL/I呼び出しを実行します。

DFSMVRC0

OpenFrame OSIの制御領域を実行します。

DFSRRC00

他のOpenFrame HiDBユーティリティ、あるいは共有オブジェクトとしてコンパイルされたバッチ・アプリケーションをパラメータ情報と一緒に実行します。

IIUSTART

HiDBの二次索引表を管理します。

2. DFSDDLT0

DFSDDLT0は、アプリケーション・プログラムのテスト・ユーティリティであり、以下の機能を実行します。

  • 制御文情報に基づいてIMSに呼び出しを発行します。

  • アプリケーション・プログラムとは別に、DL/I呼び出しが可能です。

HiDBのDFSDDLT0ユーティリティは、IBM IMS/DBのDFSDDLT0ユーティリティに対応されます。

2.1. EXEC文の設定

以下は、EXEC文の構文です。

PGM=DFSRRC00,PARM='DLI,DFSDDLT0,PSB'
項目 説明

PGM

DFSDDLT0は、IMS/DBを使用するプログラムの実行ユーティリティであるDFSRRC00を介して実行されます。

PARM

ユーティリティ領域のDFSDDLT0を実行します。

2.2. DD文の設定

以下は、DDの設定項目です。

項目 説明

PRINTDD DD

DFSDDLT0のメッセージが出力されます。(必須項目)

SYSIN DD

入力制御文が含まれているデータセットを指定します。(必須項目)

2.3. コマンドの設定

SYSINのステートメントは、その位置に応じて解釈が異なります。サポートされる機能のパラメータについてのみ説明します。

  1. STATUS文

  2. COMMENT文

    • 条件付きCOMMENT文

    • 無条件COMMENT文

  3. CALL文

2.3.1. STATUS文

説明

1

STATUS文を使用して、印刷オプションを設定し、後続の呼び出しを発行するPCB名を指定することができます。

  • S : STATUS文

2

出力装置オプション

  • ブランク : PRINTDDに指定されたデータセットに出力します。現在は、ブランクのみ指定可能であり、それ以外の文字は無視され、ブランクとして処理されます。

3

コメント印刷オプション

  • ブランク : 印刷しません。

  • 1 : 印刷します。

  • 2 : 比較の結果が異なる場合のみ印刷します。(現在サポートされていません)

4

AIB印刷オプション

  • ブランク : 印刷しません。

  • 1 : 各呼び出しを印刷します。(現在サポートされていません)

  • 2 : 比較の結果が異なる場合のみ印刷します。(現在サポートされていません)

5

CALL印刷オプション

  • ブランク : 印刷しません。

  • 1 : CALL FUNCTION文を介して呼び出された関数を印刷します。

  • 2 : 比較の結果が異なる場合のみ印刷します。(現在サポートされていません)

6

ブランク

7

COMPARE印刷オプション

  • ブランク : 印刷しません。

  • 1 : 各呼び出しを印刷します。(現在サポートされていません)

  • 2 : 比較の結果が異なる場合のみ印刷します。(現在サポートされていません)

8

ブランク

9

PCB印刷オプション

  • 空白 : 印刷しません。

  • 1 : 各呼び出しを印刷します。

  • 2 : 比較の結果が異なる場合のみ印刷します。(現在サポートされていません)

10

ブランク

11

セグメント印刷オプション

  • ブランク : 印刷しません。

  • 1 : 各呼び出しを印刷します。

  • 2 : 比較の結果が異なる場合のみ印刷します。(現在サポートされていません)

12

タスク時間を設定します。(現在サポートされていません)

13-14

ブランク

15

PCB選択オプション

  • ブランク : 16から23列の内容に基づいてオプションを選択します。

  • 1 : 16から23列に指定されたPCB名 (現在サポートされていません)

  • 2 : 16から23列に指定されたDBD名

  • 3 : 16から23列に指定された相対DB PCB (現在サポートされていません)

  • 4 : 16から23列に指定されたDB PCB (現在サポートされていません)

16-23

PCB選択オプション

デフォルトのPCBは、PSB内の最初のデータベースPCBになります。(現在は、15列が2に指定された場合にのみサポートします)

  • ブランク : 現行PCBが使用されます。

  • DBDNAME : PSB内のデータベースDBDの名前である必要があります。

24

ステータス印刷オプション

  • ブランク : 印刷しません。

25-28

PCB処理オプション

  • 現在サポートされていません。

29

ブランク

30-32

AIBインターフェース

  • AIB : AIBインターフェースが使用され、AIBが渡されたことを示します。 (現在サポートされていません)

33

ブランク

37-72

ブランク

73-80

コメントまたはシーケンス番号を提示しますが、OpenFrameでは無視されます。

2.3.2. COMMENT文

出力データにコメントを印刷します。

  • 条件付きCOMMENT

    • 呼び出しごとに5つまでの条件付きCOMMENT文を使用できます。

    • 72列には継続マークが必要ありません。

    • STATUS文の3列の値を使用して、印刷するかどうかを制御します。

  • 無条件COMMENT

    • 無条件COMMENT文を制限なく使用できます。

位置 説明

1

TまたはUのいずれかを指定します。

  • T : 条件付きCOMMENT文

  • U : 無条件COMMENT文

2-72

コメントを記述します。

73-80

コメントまたはシーケンス番号を提示しますが、OpenFrameでは無視されます。

2.3.3. CALL FUNCTION文

DL/I呼び出し機能、セグメント検索引数(SSAs)を作成します。SSAは、IMS標準に従って作成します。

説明

1

  • L : CALL FUNCTION文

2

ブランク

3

ブランク

4

ブランク

5-8

繰り返し回数 (現在サポートされません)

  • ブランク : デフォルト値は1です。

  • nnnn : 呼び出しを繰り返す回数を指定します。 (範囲: 1から9999)

10-13

DL/I呼び出し識別子を指定します。

  • ブランク : 直前のCALL文からの機能を使用します。

  • XXXX : 使用するDL/I呼び出し機能を記述します。 (ISRT、DLET、GUなど)

  • CONT

    • 単一のCALL FUNCTION文に比べてSSAが長すぎるため、継続して作成するために使用されます。

    • 先行するCALL FUNCTION文の72列は、ブランク以外の文字を含む必要があります。

    • 次のCALL文は、10から13列にCONTが入り、SSAは16列に継続する必要があります。

14-15

ブランク

16-23

SSA名

  • CALLにSSAが含まれた場合に必要です。

24

ブランク

25

SSA開始文字

  • ( : セグメントが規定された場合に必要です。

26-33

SSAフィールド名

  • フィールド名 : セグメントが規定された場合に必要です。

34

ブランク

35-36

DL/I呼び出しオペレーター

  • 比較演算子 : セグメントが規定された場合に必要です。

37

ブランク

38-nn

フィールド値

  • フィールド値 : セグメントが規定された場合に必要です。フィールド値に「5D」または「)」は使用できません。

nn+1

SSA終了文字

  • ) : セグメントが規定された場合に必要です。

72

継続列

  • ブランク : このステートメントは継続しません。

  • x : 次の行にSSAが継続することを示します。次のステートメントの10から13列にあるCONTは、続くステートメントの16列から継続されたSSAを示します。

73-80

コメントまたはシーケンス番号を提示しますが、OpenFrameでは無視されます。

2.3.4. CALL DATA文

  • CALL FUNCTIONの呼び出し機能に対して、入出力域で提供される情報をIMSに提供します。

  • CALL DATA文は、最後のCALL FUNCTION文に続く必要があります。

  • 1列にLを、10から13列にキーワードDATAを入力し、16から71列に必要なデータを作成します。

  • 72列にブランク以外の文字を入力して、データを継続することができます。

  • 継続ステートメントでは、1から15列をブランクにし、16列からデータを再開する必要があります。

説明

1

  • L : CALL DATA文

2

  • K : 5から8列に指定されたデータの長さに2500バイトを加えます。 (現在サポートされていません)

3

現在サポートされていません。

4

形式オプション (現在サポートされていません)

  • ブランク : 可変長セグメントではありません。

  • V

  • M

  • P

  • Z

  • U

5-8

セグメントのデータ長 (現在サポートされていません)

  • nnnn : セグメントのデータ長 (現在サポートされていません)

9

ブランク

10-13

CALL DATA文の識別

  • DATA : CALL DATA文として識別します。

14-15

ブランク

16-71

データ域

  • xxxx : 入出力域に入るデータを入力します。

72

継続列

  • ブランク : データがもう継続していない場合です。

  • x : 次の行にデータが継続することを示します。

73-80

コメントまたはシーケンス番号を提示しますが、OpenFrameでは無視されます。

2.4. 呼び出しの結果

呼び出しが正常に終了すると、PRINTDDに呼び出し結果が出力されます。出力される情報は、STATUS文の設定に応じて異なります。

DFSDDLT0 Version 7.2.0(2) bmahn@:ofsrc7/ims(#1) 2018-01-29 23:27:45
191223 M DLT0001M =====< DFSDDLT0 EXECUTION BEGINS >=====
 THIS IS TEST SAMPLE SAMPLE

******************************************************************************************
                           PRINT CALL FUNTION INFORMATION



  <<< CALL FUNCTION INFORMATION >>>

   FUNCTION    : GU
   SSA         : COL2    (COL2KEY = COL205)


  <<< PCB INFORMATION >>>

  DBPCB
          D D L T D B D   0 2  G E A       p . . .  C O L 2         . .  . . . . . . C O L 1  0 0 . . . . . . . .
          44444C54444244203032 4745412020207008F0FF 434F4C32202020200000 000605000000434F4C31 30300000000000000000
          . . . . . . . . . .  . . . . . . . . . .  . . . . . . . . . .  . . . . . . . . . .  . . . . . . . . . .
          00000000000000000000 00000000000000000000 00000000000000000000 00000000000000000000 00000000000000000000
          . . .
          000000


  <<< RESULT INFORMATION >>>

          COL2      STATUS CODE=GE(4745) L=000032 LEV=02 FC=GU


                               END OF THIS CALL FUNCTION
******************************************************************************************

2.5. 使用例

以下は、DBDがDDLTDBD、PSBがDDLTPSBであるデータベースから、COL2KEYがCOL205のCOL2セグメントを取得する例です。

//DFSDDLT0    JOB   MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K
//TESTGU   EXEC PGM=DFSRRC00,PARM='DLI,DFSDDLT0,DDLTPSB'
//IMS      DD  DSN=IMS.PSBLIB,DISP=SHR
//         DD  DSN=IMS.DBDLIB,DISP=SHR
//PRINTDD  DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSIN    DD *
S 1 1 1 1 1    DDLTDBD                                                  10000000
T THIS IS TEST GET UNIQUE                                               20000000
L        GU    COL2     (COL2KEY  =  COL205)                            30000000
L        GN    COL2                                                     40000000
U GET NEXT TEST                                                         50000000
/*

以下は、DBDがDDLTDBD、PSBがDDLTPSBであるデータベースから、ISRT関数を使用してデータを入力する例です。

//DFSDDLT0    JOB   MSGLEVEL=1,MSGCLASS=X,CLASS=A,REGION=4096K
//TEST01  EXEC PGM=DFSRRC00,PARM='DLI,DFSDDLT0,DDLTPSB'
//PRINTDD  DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSIN    DD *
S 1 1 1 1 1    DDLTDBD                                                  10000000
T THIS IS TEST SAMPLE                                                   20000000
L        ISRT  COL1                                                     30000000
L        DATA  COL100KKKK1234567890123456789012345678                   40000000
L        ISRT  COL2                                                     50000000
L        DATA  COL200HHHHAAAA123456789012345678                         60000000
L        ISRT  COL2                                                     70000000
L        DATA  COL201TTTTLLLL123456789012345678                         80000000
L        ISRT  COL3                                                     90000000
L        DATA  COL300ZZZZCCCC12                                         11000000
L        ISRT  COL3                                                     12000000
L        DATA  COL301PZPZQNQN34                                         13000000
L        ISRT  COL4                                                     14000000
L        DATA  COL400BBBB123456789012345678SSSS                         15000000
U TEST DATA INSERT SUCCESSFUL                                           16000000
/*

2.6. 戻りコード

以下は、DFSDDLT0ユーティリティの戻りコードです。

  • 正常に実行された場合

    戻りコード0を返します。

  • エラーが発生した場合

    PRINTDD DDにエラーメッセージを出力し、該当するエラーコードを返します。

    コード 説明

    8

    プログラム処理またはシステム・エラーです。次のような場合に発生します。

    • OpenFrameシステム・ライブラリの初期化に失敗した場合

    • その他のDFSDDLT0ユーティリティ・プログラムのエラー

3. DFSMVRC0

DFSMVRC0は、OpenFrame OSIの制御領域を実行するためのユーティリティ・プログラムです。OpenFrame OSIの領域名を指定すると、その領域のスケジュール・サーバーとコマンド・サーバーが実行されます。

HiDBのDFSMVRC0は、IBM DCCTLのエントリ・モジュールであるDFSMVRC0ユーティリティに対応されます。

3.1. EXEC文の設定

以下は、EXEC文の構文です。

EXEC PGM=DFSMVRC0, PARM=(regiontype, rgsuf, imsid)

以下は、各パラメータについての説明です。

項目 説明

regiontype

制御領域を実行するために「CTL」タイプであることを確認します。CTL以外の値は不明な領域として認識され、エラーが発生します。

rgsuf

DFSPB***の接尾部です。IBMではDBC、DCC、IMSの3種類がありますが、OpenFrame OSIではIMSのみサポートしており、ユーティリティ内では形式的なチェックのみを行います。

imsid

1から4バイトのOpenFrame OSI制御領域のIDを「IMSID=id」形式で指定します。

3.2. DD文の設定

項目 説明

MODBLKSA,

MODBLKSB

OpenFrame OSIでサポートされる各種リソースの設定が保存されたステージング・ライブラリのデータセット名を指定します。

IMSACBA,

IMSACBB

ACBが保存されたステージング・ライブラリのデータセット名を指定します。

DFSRESLB

OpenFrame OSIで使用されるデータセットを動的に割り当てるために必要なMDA情報を保存するライブラリです。該当のデータセット名を指定します。

MATRIXA,

MATRIXB

OpenFrame OSIでサポートされるセキュリティ情報が保存されたステージング・ライブラリのデータセット名を指定します。

FORMATA,

FORMATB

MFSが保存されたステージング・ライブラリのデータセット名を指定します。

STEPLIB

OpenFrame OSIで使用されるアプリケーション開発者が作成したプログラムの共有オブジェクト形式の実行モジュールを保存するためのデータセットを指定します。

QBLKS

OpenFrame OSIで使用されるMQ(Message Queue)のデータセット名を指定します。

MODSTAT

動的変更をサポートするデータセットの現在のACTデータセット情報が含まれているデータセットを指定します。

SYSPRINT DD

出力データセットを指定します。

4. DFSRRC00

DFSRRC00は、他のHiDBユーティリティ、あるいは共有オブジェクトとしてコンパイルされたバッチ・アプリケーションをパラメータ情報と一緒に実行するためのユーティリティ・プログラムです。バッチ環境でHiDBを使用するすべてのプログラムは、DFSRRC00を介して実行されます。

HiDBのDFSRRC00は、IBM IMS/DBのDFSRRC00ユーティリティに対応されます。

4.1. EXEC文の設定

以下は、EXEC文の構文です。

  • -mode=BMP以外の場合

    EXEC PGM=DFSRRC00, PARM=(mode, mbr, psb, buf, spie/test/excpvr/rst, prld, srch,
        ckptid,mon, loga, fmto, imsid, swap, dbrc, irlm, irlmnm, bko, iob, ssm,
        'aparm', lockmax, gsgname, tminame, rrs, imsplex, rgsuf, dfsdf, 'parm1',
        'parm2')
  • -mode=BMPの場合

    EXEC PGM=DFSRRC00, PARM=(BMP, mbr, psb, in, out, opt/spie/test/dirca, prld,
        stimer, ckptid, pardli, cputime, nba, oba, imsid, agn, ssm, preinit,
        altid, 'aparm', lockmax, environ, jvmopmas)

以下は、各パラメータについての説明です。

項目 説明

mode

-mode=BMP以外の場合、DLI、MPP、ULU、UPB、UDRなど、実行するプログラムのHiDBの動作環境を設定します。

mbr

アプリケーション・プログラム名を指定します。

psb

アプリケーション・プログラムが使用するPSB名を指定します。

ckptid

シンボリック・チェックポイントと拡張再起動機能で使用されるチェックポイントIDを指定します。

上記以外のパラメータは、HiDBでは処理されません。

4.2. DD文の設定

DFSRRC00は、他のユーティリティまたはアプリケーション・プログラムを実行するために使用されるため、DFSRRC00固有のDD設定項目はありません。以下は、共通して使用されるDD項目です。

項目 説明

IMS DD

IMS.DBDLIB、IMS.PSBLIB、GSAMデータセットなど、HiDBで使用される基本的なデータベースの情報を設定します。

STEPLIB

OpenFrame/OSIで使用されるアプリケーション開発者が作成したプログラムの共有オブジェクト形式の実行モジュールを保存するためのデータセットを指定します。

DFSRESLB

OpenFrame/OSIで使用されるデータセットを動的に割り当てるために必要なMDA情報を保存するライブラリです。該当のデータセット名を指定します。

SYSABEND, SYSUDUMP DD

ダンプ・データセットを指定します。SYSABENDとSYSUDUMP DDを両方とも指定した場合は、後に指定されたDDに記録されます。

SYSIN DD

入力データセットを指定します。

SYSPRINT DD

出力データセットを指定します。

5. IIUSTART

IIUSTARは、HiDBの二次索引表を管理するためのユーティリティ・プログラムです。

  • 二次索引は、ターゲットDBD内のセグメントに関連する索引セグメント表にデータを挿入します。

  • 索引名を指定して、索引セグメント表に挿入することができます。

HiDBのIIUSTARTは、IBM IMS/DBのIIUSTARTユーティリティに対応されます。IBM IMS/DBのIIUSTARTは、すべての索引を作成および管理しますが、HiDBのIIUSTARTユーティリティは、二次索引表を管理するために使用されます。

5.1. EXEC文の設定

以下は、EXEC文の構文です。

PGM=IIUSTART

5.2. DDの設定

以下は、DDの設定項目です。

項目 説明

IIUPRINT DD

IIUSTARTユーティリティのメッセージが出力されます。(必須項目)

IIUIN DD

入力制御文が含まれたデータセットを指定します。(必須項目)

5.3. コマンドの設定

IIUSTARTでは、IIUINに入力された制御文を使用して索引ステートメント表にデータを挿入します。

項目 説明

PROC文

索引を処理する方法を指定します。

INDEX文

指定した索引のみ処理します。

5.3.1. PROC文

PROC文は、索引を処理する方法を指定します。IIUSTARTでは、二次索引を挿入するためのBLD_SECONDARYオプションのみサポートしています。BLD_PRIMARYとBLD_ILDSはサポートされません。

PROC BLD_SECONDARY,dbname1,{ALL|SELECT}

5.3.2. INDEX文

INDEX文は、指定した索引のみ処理します。

PROC文では、必須オプションとしてSELECTを指定する必要があります。ALLオプションを使用すると、INDEX文は無視されます。

索引名は、最大32個まで指定できます。

INDEX indexname[,indexname[,...]]

5.4. 呼び出しの結果

呼び出しが正常に終了すると、IIUPRINT DDに呼び出し結果が出力されます。

IIUSTART Version 7.2.0(1) oftest@:ofsrc7/ims(#1) 2018-01-29 23:27:45
172116 M IST0001M =====< IIUSTART EXECUTION BEGINS >=====
----#1: SEG1(1:SEG111)
----#2: SEG2(1:SEG211)
----#3: SEG3(1:SEG311)
----#4: SEG3(2:SEG312)
----#5: SEG4(1:SEG411)
----#6: SEG2(2:SEG212)
----#7: SEG3(3:SEG313)
----#8: SEG3(4:SEG314)
----#9: SEG4(2:SEG412)
----#10: SEG4(3:SEG413)
----#11: SEG5(1:SEG511)
----#12: SEG1(2:SEG121)
----#13: SEG2(3:SEG221)
----#14: SEG3(5:SEG321)
----#15: SEG5(2:SEG521)
----#16: SEG1(3:SEG131)
----#17: SEG2(4:SEG231)
----#18: SEG5(3:SEG531)
----#19: SEG1(4:SEG141)
----#20: SEG2(5:SEG241)
----#21: SEG5(4:SEG541)
----#22: SEG1(5:SEG151)
----#23: SEG2(6:SEG251)
----#24: SEG5(5:SEG551)

******************************************************************************************

              SUCCESS BUILD SECONDARY INDEX - DBDNAME is 'EXHIDAM'

******************************************************************************************

172116 M IST0002M =====< IIUSTART EXECUTION ENDS >=====

5.5. 使用例

以下は、EXHIDAM DBDにある二次索引ソース・セグメントの二次索引表にデータを挿入する例です。

//IIUALL   JOB
//STEP01   EXEC PGM=IIUSTART
//IIUPRINT   DD SYSOUT=*
//IIUIN    DD *
  PROC BLD_SECONDARY,EXHIDAM,ALL
/*

以下は、EXHIDAM DBDにある二次索引ソース・セグメントの二次索引表のうち、索引名がEXHIIX2とEXHIIX5の索引にデータを挿入する例です。

//IIUALL   JOB
//STEP01   EXEC PGM=IIUSTART
//IIUPRINT   DD SYSOUT=*
//IIUIN    DD *
  PROC BLD_SECONDARY,EXHIDAM,SELECT
  INDEX EXHIIX2,EXHIIX5
/*

5.6. 戻りコード

以下は、IIUSTARTユーティリティの戻りコードです。

  • 正常に実行された場合

    戻りコード0を返します。

  • エラーが発生した場合

    PRINTDD DDにエラーメッセージを出力し、該当するエラーコードを返します。

    コード 説明

    8

    プログラム処理またはシステム・エラーです。次のような場合に発生します。

    • OpenFrameシステム・ライブラリの初期化に失敗した場合

    • その他のIIUSTARTユーティリティ・プログラムのエラー