OpenFrame HiDBのその他のユーティリティ
本章では、OpenFrame 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のステートメントは、その位置に応じて解釈が異なります。サポートされる機能のパラメータについてのみ説明します。
2.3.1. STATUS文
列 | 説明 |
---|---|
1 |
STATUS文を使用して、印刷オプションを設定し、後続の呼び出しを発行するPCB名を指定することができます。
|
2 |
出力装置オプション
|
3 |
コメント印刷オプション
|
4 |
AIB印刷オプション
|
5 |
CALL印刷オプション
|
6 |
ブランク |
7 |
COMPARE印刷オプション
|
8 |
ブランク |
9 |
PCB印刷オプション
|
10 |
ブランク |
11 |
セグメント印刷オプション
|
12 |
タスク時間を設定します。(現在サポートされていません) |
13-14 |
ブランク |
15 |
PCB選択オプション
|
16-23 |
PCB選択オプション デフォルトのPCBは、PSB内の最初のデータベースPCBになります。(現在は、15列が2に指定された場合にのみサポートします)
|
24 |
ステータス印刷オプション
|
25-28 |
PCB処理オプション
|
29 |
ブランク |
30-32 |
AIBインターフェース
|
33 |
ブランク |
37-72 |
ブランク |
73-80 |
コメントまたはシーケンス番号を提示しますが、OpenFrameでは無視されます。 |
2.3.2. COMMENT文
出力データにコメントを印刷します。
-
条件付きCOMMENT
-
呼び出しごとに5つまでの条件付きCOMMENT文を使用できます。
-
72列には継続マークが必要ありません。
-
STATUS文の3列の値を使用して、印刷するかどうかを制御します。
-
-
無条件COMMENT
-
無条件COMMENT文を制限なく使用できます。
-
位置 | 説明 |
---|---|
1 |
TまたはUのいずれかを指定します。
|
2-72 |
コメントを記述します。 |
73-80 |
コメントまたはシーケンス番号を提示しますが、OpenFrameでは無視されます。 |
2.3.3. CALL FUNCTION文
DL/I呼び出し機能、セグメント検索引数(SSAs)を作成します。SSAは、IMS標準に従って作成します。
列 | 説明 |
---|---|
1 |
|
2 |
ブランク |
3 |
ブランク |
4 |
ブランク |
5-8 |
繰り返し回数 (現在サポートされません)
|
10-13 |
DL/I呼び出し識別子を指定します。
|
14-15 |
ブランク |
16-23 |
SSA名
|
24 |
ブランク |
25 |
SSA開始文字
|
26-33 |
SSAフィールド名
|
34 |
ブランク |
35-36 |
DL/I呼び出しオペレーター
|
37 |
ブランク |
38-nn |
フィールド値
|
nn+1 |
SSA終了文字
|
72 |
継続列
|
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 |
|
2 |
|
3 |
現在サポートされていません。 |
4 |
形式オプション (現在サポートされていません)
|
5-8 |
セグメントのデータ長 (現在サポートされていません)
|
9 |
ブランク |
10-13 |
CALL DATA文の識別
|
14-15 |
ブランク |
16-71 |
データ域
|
72 |
継続列
|
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 /*
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.2. DDの設定
以下は、DDの設定項目です。
項目 | 説明 |
---|---|
IIUPRINT DD |
IIUSTARTユーティリティのメッセージが出力されます。(必須項目) |
IIUIN DD |
入力制御文が含まれたデータセットを指定します。(必須項目) |
5.3. コマンドの設定
IIUSTARTでは、IIUINに入力された制御文を使用して索引ステートメント表にデータを挿入します。
項目 | 説明 |
---|---|
索引を処理する方法を指定します。 |
|
指定した索引のみ処理します。 |
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 /*