履歴検索API
HULFTの集配信履歴ファイルから検索条件にあった情報を検索します。
APIを使用するには、SYS1.COBLIB(COBOLランタイムライブラリ)が必要です。
APIを実行するJCLのJOBLIB、またはSTEPLIBにCOBOLランタイムライブラリを連結してください。
(1) 呼び出し形式(COBOL)
CALL 'XRLOGAP' USING パラメータエリア 履歴レコードエリア
パラメータエリア説明
|
項目 |
属性 |
長さ |
説明 |
|
|---|---|---|---|---|
|
動作バージョン |
キャラクタ |
6 |
検索したい履歴フォーマットのバージョンおよびパラメータエリアのバージョンを指定します。 以下のいずれかを指定してください。
APIは、指定されたバージョンのフォーマットにあわせて履歴ファイルの項目を取得します。取得したい項目にあわせてバージョンを指定してください。 |
|
|
コマンド |
キャラクタ |
3 |
以下のコマンドを実行します。 |
|
|
GTP |
該当履歴情報を検索 |
|||
|
SQP |
該当情報に位置付ける |
|||
|
GTA |
該当履歴情報を検索 |
|||
|
GTN |
該当履歴情報の次の情報を検索 |
|||
|
SQN |
位置付けた情報を読む |
|||
|
OPN |
集配信履歴ファイルをオープン |
|||
|
CLS |
集配信履歴ファイルをクローズ |
|||
|
実行オプション |
キャラクタ |
1 |
I |
コマンドに“OPN”を指定した場合に設定 |
|
F |
ファイルIDで検索する場合に設定 |
|||
|
S |
ホスト名で検索する場合に設定 |
|||
|
位置付けオプション |
キャラクタ |
1 |
位置付けた情報以降を検索したい場合、“H”を指定します。 |
|
|
リザーブ |
キャラクタ |
2 |
“LOW-VALUE(0x00)”を指定してください。 |
|
|
検索する管理情報 |
キャラクタ |
1 |
S |
配信履歴情報を検索する場合に指定します。 |
|
R |
集信履歴情報を検索する場合に指定します。 |
|||
|
J |
ジョブ実行履歴情報を検索する場合に指定します。 |
|||
|
C |
要求受付履歴情報を検索する場合に指定します。 |
|||
|
検索キー |
キャラクタ |
50 |
検索したいファイルID、またはホスト名を指定します。 |
|
|
検索開始日付 |
バイナリ |
4 |
検索時、該当日付の履歴を取得したい場合に指定します。 |
|
|
検索開始時間 |
バイナリ |
4 |
検索時、該当時間の履歴を取得したい場合に指定します。 検索開始時間を指定する場合は、検索開始日付の指定が必須です。 |
|
|
完了コード |
バイナリ |
2 |
実行後の完了コードが設定されます。 |
|
|
VSAM FDBK |
バイナリ |
2 |
実行後、VSAMアクセスで異常が発生した場合に設定されます。 |
|
|
リザーブ |
キャラクタ |
20 |
“LOW-VALUE(0x00)”を指定してください。 |
|
【各項目の組み合わせ】
|
コマンド |
実行 |
位置付 |
検索キー |
検索 |
検索 |
概要 |
|---|---|---|---|---|---|---|
|
OPN |
I |
スペース |
スペース |
ゼロ |
ゼロ |
集配信履歴ファイルをオープンする。 |
|
CLS |
スペース |
スペース |
スペース |
ゼロ |
ゼロ |
集配信履歴ファイルをクローズする。 |
|
GTP |
スペース |
スペース |
スペース |
ゼロ |
ゼロ |
存在する履歴の中でファイルID、日付、時間がEBCDIC順で一番小さいレコードを1件読み込む。 |
|
SQP |
スペース |
スペース |
スペース |
日付 |
時間 |
指定された日付時間以降で、最も古いレコードを1件読み込む。 |
|
SQP |
スペース |
スペース |
スペース |
ゼロ |
ゼロ |
存在する履歴の中で日付時間の最も新しいレコードを1件読み込む。 = 備考 =
ジョブ実行履歴に対して行うことはできません。 |
|
GTA |
F |
スペース |
ファイルID |
ゼロ |
ゼロ |
指定されたファイルIDの最も古いレコードを1件読み込む。 |
|
GTA |
F |
H |
ファイルID |
日付 |
ゼロ |
指定されたファイルIDで、指定された日付の最も古いレコードを1件読み込む。 |
|
GTA |
S |
スペース |
ホスト名 |
ゼロ |
ゼロ |
指定されたホスト名の最も古いレコードを1件読み込む。 |
|
GTA |
S |
H |
ホスト名 |
日付 |
ゼロ |
指定されたホスト名で、指定された日付の最も古いレコードを1件読み込む。 |
|
GTN |
スペース |
スペース |
変更不可 |
ゼロ |
ゼロ |
前回読み込んだ次に古いレコードを1件読み込む。 |
|
GTN |
F |
スペース |
変更不可 |
ゼロ |
ゼロ |
前回読み込んだレコードと同一ファイルIDで次に古いレコードを1件読み込む。(同一ファイルIDがなくなったらエラーを返す) |
|
GTN |
S |
スペース |
変更不可 |
ゼロ |
ゼロ |
前回読み込んだレコードと同一ホスト名で次に古いレコードを1件読み込む。(同一ホスト名がなくなったらエラーを返す) |
|
SQN |
スペース |
スペース |
変更不可 |
ゼロ |
ゼロ |
前回読み込んだレコードの次に存在するレコードを読み込む。 |
|
SQN |
スペース |
スペース |
変更不可 |
ゼロ |
ゼロ |
前回読み込んだレコードの直前に存在するレコードを読み込む。 |
「検索開始日付」に「日付」と記載されている場合は、ゼロはセットしないでください。誤動作の原因となります。
履歴レコードエリア
履歴レコードエリアのフォーマットは、「動作バージョン」で指定したバージョンによって異なります。履歴レコードエリアの詳細は、「履歴ファイルのフォーマット」を参照してください。
APIを使用して履歴を取得した場合は、各履歴ファイルのレコードの先頭にあるキーフィールド項目は取得されません。以降の項目が詰められたフォーマットとなります。
(2) 完了コード
|
完了コード |
内容 |
|---|---|
|
0 |
正常に実行しました。 |
|
1 |
コマンドの設定内容に誤りがあります。 |
|
2 |
オプション情報の設定内容に誤りがあります。 |
|
3 |
集配信履歴ファイルのオープンに失敗しました。 |
|
4 |
集配信履歴ファイルのクローズに失敗しました。 |
|
7 |
検索処理で異常が発生しました。詳細情報が、VSAM FDBKに設定されます。 |
|
8 |
次情報の検索処理で異常が発生しました。詳細情報が、VSAM FDBKに設定されます。 |
|
10 |
該当情報は存在しません。 |
|
11 |
次の情報は存在しません。 |
|
14 |
動作バージョンがサポートされていません。 |
|
15 |
検索キーの設定内容に誤りがあります。 |
|
16 |
本コマンドで指定できる管理情報ではありません。 |
実行するJCLに以下のDD文の記述をしてください。
-
JCL例
//XRLOG DD DSN=HULFT.LOG,DISP=SHR //XRLOG1 DD DSN=HULFT.LOG.PATH1,DISP=SHR //XRLOG2 DD DSN=HULFT.LOG.PATH2,DISP=SHR //XRSYSIN DD DSN=HULFT.PARMLIB(HULPRM),DISP=SHR
|
DD名 |
項目名 |
説明 |
|---|---|---|
|
XRLOG |
HULFT.LOG |
集配信履歴ファイルIDキーファイル |
|
XRLOG1 |
HULFT.LOG.PATH1 |
集配信履歴ホスト名キーファイル |
|
XRLOG2 |
HULFT.LOG.PATH2 |
集配信履歴日付キーファイル |
|
XRSYSIN |
HULFT.PARMLIB(HULPRM) |
システム動作環境設定ファイル |
(3) 使用例
COBOLで使用する場合
履歴検索API(XRLOGAP)を利用して、集信履歴を検索するサンプルプログラムです。
サンプルプログラムは、HULFT JCLライブラリ内のメンバ名「SMPLOGAP」です。
検索するデータ
- 集信履歴の一番古いデータ
*
* GET HULFT RECEIVE LOG RECORD SAMPLE
*
IDENTIFICATION DIVISION.
PROGRAM-ID. SMPLOGAP.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
*
* XRLOGAP PARAMETER AREA
*
01 XRLOGAP-PARM.
02 XRLOGAP-VER PIC X(6).
02 XRLOGAP-COMMAND PIC X(3).
02 XRLOGAP-EXECOPT PIC X(1).
02 XRLOGAP-POINTOPT PIC X(1).
02 XRLOGAP-RESERVE1 PIC X(2).
02 XRLOGAP-INFO PIC X(1).
02 XRLOGAP-KEY PIC X(50).
02 XRLOGAP-DATE PIC 9(8) COMP.
02 XRLOGAP-TIME PIC 9(8) COMP.
02 XRLOGAP-ERRCD PIC 9(4) COMP.
02 XRLOGAP-FDBK PIC 9(4) COMP.
02 XRLOGAP-RESERVE2 PIC X(20).
*
* XRLOGAP 1 LOG RECORD AREA
*
01 XRLOGAP-RECORD PIC X(4000).
*------------------------------------------------*
PROCEDURE DIVISION.
*
* XRLOGAP PARAMETER AREA INITIALIZATION
*
INITIALIZE XRLOGAP-PARM.
INITIALIZE XRLOGAP-RECORD.
*
* HULFT.LOG OPEN
*
MOVE 'V08L04' TO XRLOGAP-VER.
MOVE 'OPN' TO XRLOGAP-COMMAND.
MOVE 'I' TO XRLOGAP-EXECOPT.
MOVE LOW-VALUE TO XRLOGAP-RESERVE1.
MOVE 'R' TO XRLOGAP-INFO.
MOVE ZERO TO XRLOGAP-DATE.
MOVE ZERO TO XRLOGAP-TIME.
MOVE LOW-VALUE TO XRLOGAP-RESERVE2.
CALL 'XRLOGAP' USING XRLOGAP-PARM XRLOGAP-RECORD.
*
* GET THE OLDEST RECORD FROM HULFT RECEIVE LOG FILE
*
MOVE 'V08L04' TO XRLOGAP-VER.
MOVE 'GTA' TO XRLOGAP-COMMAND.
MOVE 'F' TO XRLOGAP-EXECOPT.
MOVE SPACE TO XRLOGAP-POINTOPT.
MOVE 'R' TO XRLOGAP-INFO.
MOVE 'FILEID' TO XRLOGAP-KEY.
CALL 'XRLOGAP' USING XRLOGAP-PARM XRLOGAP-RECORD.
DISPLAY XRLOGAP-RECORD.
*
* HULFT.LOG CLOSE
*
MOVE 'V08L04' TO XRLOGAP-VER.
MOVE 'CLS' TO XRLOGAP-COMMAND.
MOVE SPACE TO XRLOGAP-EXECOPT.
MOVE SPACE TO XRLOGAP-POINTOPT.
MOVE 'R' TO XRLOGAP-INFO.
MOVE SPACE TO XRLOGAP-KEY.
MOVE ZERO TO XRLOGAP-DATE.
MOVE ZERO TO XRLOGAP-TIME.
CALL 'XRLOGAP' USING XRLOGAP-PARM XRLOGAP-RECORD.
*
STOP RUN.