履歴検索API
HULFTの集配信履歴ファイルから検索条件にあった情報を検索します。
APIを実行するときは、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に以下のFD文の記述をしてください。
-
JCL例
\ FD XRLOG=DA,FILE=HULFT.LOG,AMP=AMORG \ FD XRLOG1=DA,FILE=HULFT.LOG.PATH1,AMP=AMORG \ FD XRLOG2=DA,FILE=HULFT.LOG.PATH2,AMP=AMORG \ FD XRSYSIN=DA,FILE=HULFT.PARMLIB,MEMBER=HULPRM
FD名 |
項目名 |
説明 |
---|---|---|
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.