Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス COBOL言語編


CBLDCJUP('RDGETRPT')

〈このページの構成〉

名称

jnlrput出力ファイルからジャーナルデータの入力

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCJUP'  USING  一意名1  一意名2  一意名3  一意名4  一意名5

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'RDGETRPT'.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名Z  PIC S9(9) COMP VALUE ZERO.
01 一意名2.
   02 FILLER    PIC X(256).
   02 データ名C  PIC S9(9) COMP.
   02 データ名D  PIC 9(9) COMP.
   02 データ名E  PIC 9(9) COMP.
01 一意名3.
   02 データ名F  PIC 9(9) COMP.
   02 データ名G  PIC X(1).
   02 データ名Y  PIC X(1).
   02 FILLER    PIC X(2).
   02 データ名H  PIC X(4).
   02 データ名I  PIC X(8).
   02 データ名J  PIC X(9).
   02 FILLER    PIC X(3).
   02 データ名K  PIC X(4).
   02 データ名L  PIC X(8).
   02 FILLER    PIC X(12).
   02 データ名M  PIC X(12).
   02 データ名N  PIC X(12).
   02 FILLER    PIC X(1).
   02 FILLER    PIC X(3).
   02 FILLER    PIC 9(9) COMP.
   02 データ名W  PIC X(4).
   02 FILLER    PIC X(36).
01 一意名4.
   02 データ名O.
      03 データ名O1 PIC 9(9) COMP.
      03 データ名O2 PIC 9(9) COMP.
      03 FILLER    PIC X(120).
   02 データ名P REDEFINES データ名O.
      03 データ名P1 PIC X(2).
      03 データ名P2 PIC X(1).
      03 データ名P3 PIC X(1).
      03 データ名P4 PIC X(4).
      03 データ名P5 PIC X(4).
      03 データ名P6 PIC X(4).
      03 データ名P7 PIC X(4).
      03 データ名P8 PIC X(9).
      03 FILLER    PIC X(3).
      03 データ名P9 PIC X(32).
      03 データ名P10 PIC X(4).
      03 データ名P11 PIC X(4).
      03 データ名P12 PIC X(4).
      03 データ名P13 PIC X(4).
      03 データ名P14 PIC X(4).
      03 データ名P15 PIC X(4).
      03 FILLER    PIC X(40).
   02 データ名Q REDEFINES データ名O.
      03 データ名Q1 PIC X(16).
      03 データ名Q2 PIC X(10).
      03 FILLER    PIC X(2).
      03 データ名Q3 PIC X(12).
      03 データ名Q4 PIC X(9).
      03 FILLER    PIC X(3).
      03 データ名Q5 PIC X(1).
      03 データ名Q6 PIC X(1).
      03 FILLER    PIC X(2).
      03 データ名Q7 PIC 9(9) COMP.
      03 FILLER    PIC X(68).
   02 データ名R REDEFINES データ名O.
      03 データ名R1 PIC X(16).
      03 データ名R2 PIC X(16).
      03 データ名R3 PIC X(1).
      03 データ名R4 PIC X(1).
      03 FILLER    PIC X(2).
      03 データ名R5 PIC 9(9) COMP.
      03 FILLER    PIC X(88).
   02 データ名S REDEFINES データ名O.
      03 データ名S1 PIC X(16).
      03 データ名S2 PIC X(10).
      03 FILLER    PIC X(2).
      03 データ名S3 PIC X(1).
      03 データ名S4 PIC X(1).
      03 FILLER    PIC X(2).
      03 データ名S5 PIC 9(9) COMP.
      03 データ名S6 PIC 9(9) COMP.
      03 FILLER    PIC X(88).
   02 データ名T REDEFINES データ名O.
      03 データ名T1 PIC X(16).
      03 データ名T2 PIC X(10).
      03 FILLER    PIC X(2).
      03 データ名T3 PIC X(1).
      03 データ名T4 PIC X(1).
      03 FILLER    PIC X(2).
      03 データ名T5 PIC 9(9) COMP.
      03 FILLER    PIC X(92).
   02 データ名U REDEFINES データ名O.
      03 データ名U1 PIC X(16).
      03 データ名U2 PIC X(10).
      03 FILLER    PIC X(2).
      03 データ名U3 PIC X(12).
      03 データ名U4 PIC 9(9) COMP.
      03 FILLER    PIC X(84).
01 一意名5.
   02 データ名V  PIC X(n).

機能

jnlrputコマンド出力ファイルから,(レコード管理情報(一意名3) + レコードデータヘッダ(一意名4) + レコードデータ(一意名5))単位で,ジャーナルデータを順番に入力します。

jnlrputコマンド出力ファイルを CBLDCJUP('OPENRPT ') でオープンしてから,ジャーナルデータを CBLDCJUP('RDGETRPT') で入力してください。

データ名Vには,ジャーナルデータ入力用のバッファの長さを設定します。この長さには,設定したジャーナルデータの長さと同じ値を設定してください。データ名Vの領域の長さがジャーナルデータの長さよりも小さい場合は,CBLDCJUP('RDGETRPT')の動作は保証しません。

データ名Dに設定したジャーナルデータ長が,実際のジャーナルデータ長よりも大きい場合は,ジャーナルデータを入力して,そのジャーナルデータ長がデータ名Eに返されます。

データ名Dに設定したジャーナルデータ長が,実際のジャーナルデータ長よりも小さい場合は,CBLDCJUP('RDGETRPT')はエラーリターンします。

入力エラーが起こった場合は,CBLDCJUP('RDGETRPT')は jnlrputコマンド出力結果ファイルをクローズしてリターンします。

ファイルの終わりに達した場合は,ジャーナルデータは返されません。

CBLDCJUP('RDGETRPT')には,CBLDCJUP('OPENRPT ')で返されたファイル記述子を設定します。

UAPで値を設定するデータ領域

●データ名A

jnlrputコマンド出力ファイルからデータを入力することを示す要求コードを「VALUE 'RDGETRPT'」と設定します。

●データ名Z

0を設定します。

●データ名C

ファイル記述子を設定します。

●データ名D

入力するジャーナルデータの長さを設定します。設定できる長さは,1から(取得先システムジャーナルサービス定義のjnl_max_datasizeオペランドの値)までです。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが,5けたの数字で返されます。

●データ名E

入力したジャーナルデータのデータ長が返されます。

●データ名F

一意名3,一意名4,一意名5 を合計した長さが返されます。

●データ名G

入力したジャーナルデータの,レコード種別が返されます。

'U' … UJレコードが返されたことを示します。

'S' … SJレコードが返されたことを示します。

'I' … IJレコードが返されたことを示します。

'M' … MJレコードが返されたことを示します。

'O' … OJレコードが返されたことを示します。

'A' … AJレコードが返されたことを示します。

'G' … GJレコードが返されたことを示します。

●データ名Y

入力したジャーナルデータの,トランザクションID設定情報の有無が返されます。

0x00…トランザクションID設定情報はありません。

0x80…トランザクションID設定情報があります。この場合,データ名Mにレコードトランザクショングローバル識別子,データ名Nにレコードトランザクションブランチ識別子が返されます。

●データ名H

入力したジャーナルデータの,レコード取得時刻が返されます。

●データ名I

入力したジャーナルデータの,レコード取得要求元ノード識別子が返されます。

●データ名J

入力したジャーナルデータの,レコード取得要求元サーバ名が返されます。

●データ名K

入力したジャーナルデータの,レコード取得要求元サーバタイムスタンプが返されます。

●データ名L

入力したジャーナルデータの,レコードユーザ情報が返されます。

●データ名M

入力したジャーナルデータの,レコードトランザクショングローバル識別子が返されます。トランザクション外UJの場合,0が返されます。

●データ名N

入力したジャーナルデータの,レコードトランザクションブランチ識別子が返されます。トランザクション外UJの場合,0が返されます。

●データ名W

入力したジャーナルデータの,レコード取得時刻(マイクロ秒)が返されます。

ただし,TP1/Server Base 06-01より前のバージョンのジャーナルデータを,jnlrputコマンドで編集出力したファイルを入力した場合は0が返されます。

●データ名O

入力したUJデータのデータヘッダ情報が返されます。データ名Oに返される値は,データ名Gに「U」が返されている場合にだけ有効です。

  • データ名O1

    入力したUJデータの,データ長が返されます。

  • データ名O2

    入力したUJデータの,UJコードが返されます。

●データ名P

入力したSJデータのデータヘッダ情報が返されます。データ名Pに返される値は,データ名Gに「S」が返されている場合にだけ有効です。

  • データ名P1

    入力したSJデータの,子トランザクションブランチを含むトランザクション決着方式が設定されます。

    'C ' … コミット決着を示します。

    'R ' … ロールバック決着を示します。

    'HC' … コマンドでコミット決着したことを示します。

    'HR' … コマンドでロールバック決着したことを示します。

    'HM' … コマンドでミックス決着したことを示します。

    'HH' … コマンドでハザード決着したことを示します。

  • データ名P2

    入力したSJデータの,プロセス種別が返されます。

    'U' … ユーザサーバプロセスで決着したことを示します。

    'R' … 回復プロセスで決着したことを示します。

  • データ名P3

    入力したSJデータの,トランザクションブランチ本体の決着方法が返されます。

    'C' … コミット決着を示します。

    'R' … ロールバック決着を示します。

  • データ名P4

    入力したSJデータの,ブランチ実行時間秒データが返されます。

  • データ名P5

    入力したSJデータの,ブランチ実行時間秒以下データが返されます。

  • データ名P6

    入力したSJデータの,ブランチ同期点処理実行時間秒データが返されます。

  • データ名P7

    入力したSJデータの,ブランチ同期点処理実行時間秒以下データが返されます。

  • データ名P8

    入力したSJデータの,ユーザサーバ名が返されます。

  • データ名P9

    入力したSJデータの,サービス名が返されます。

  • データ名P10

    入力したSJデータの,トランザクション全CPU時間(マイクロ秒単位)が返されます。

  • データ名P11

    入力したSJデータの,OpenTP1のCPU時間(マイクロ秒単位)が返されます。

  • データ名P12

    入力したSJデータの,UAPのCPU時間(マイクロ秒単位)が返されます。

  • データ名P13

    入力したSJデータの,TP1/FS/Direct AccessのCPU時間(マイクロ秒単位)が返されます。

  • データ名P14

    入力したSJデータの,TP1/FS/Table AccessのCPU時間(マイクロ秒単位)が返されます。

  • データ名P15

    入力したSJデータの,ISAM/BのCPU時間(マイクロ秒単位)が返されます。

●データ名Q

入力したIJデータのデータヘッダ情報が返されます。データ名Qに返される値は,データ名Gに「I」が返されている場合にだけ有効です。

  • データ名Q1

    入力したIJデータの,入力元論理端末名称が返されます。

  • データ名Q2

    入力したIJデータの,アプリケーション名が返されます。

  • データ名Q3

    入力したIJデータの,メッセージ入力通番が返されます。

  • データ名Q4

    入力したIJデータの,マップ名が返されます。

  • データ名Q5

    入力したIJデータの,入力メッセージ種別が返されます。

  • データ名Q6

    入力したIJデータの,順序識別子が返されます。

  • データ名Q7

    入力したIJデータの,入力メッセージの長さが返されます。

●データ名R

入力したMJデータのデータヘッダ情報が返されます。データ名Rに返される値は,データ名Gに「M」が返されている場合にだけ有効です。

  • データ名R1

    入力したMJデータの,論理端末名称が返されます。

  • データ名R2

    入力したMJデータの,コネクション名が返されます。

  • データ名R3

    入力したMJデータの,MJタイプが返されます。

  • データ名R4

    入力したMJデータの,順序識別子が返されます。

  • データ名R5

    入力したMJデータの,メッセージの長さが返されます。

●データ名S

入力したOJデータのデータヘッダ情報が返されます。データ名Sに返される値は,データ名Gに「O」が返されている場合にだけ有効です。

  • データ名S1

    入力したOJデータの,出力先論理端末名称が返されます。

  • データ名S2

    入力したOJデータの,アプリケーション名が返されます。

  • データ名S3

    入力したOJデータの,出力メッセージ種別が返されます。

  • データ名S4

    入力したOJデータの,出力通番の有無が返されます。

  • データ名S5

    入力したOJデータの,メッセージ出力通番が返されます。

  • データ名S6

    入力したOJデータの,出力メッセージの長さが返されます。

●データ名T

入力したAJデータのデータヘッダ情報が返されます。データ名Tに返される値は,データ名Gに「A」が返されている場合にだけ有効です。

  • データ名T1

    入力したAJデータの,出力先論理端末名称が返されます。

  • データ名T2

    入力したAJデータの,アプリケーション名が返されます。

  • データ名T3

    入力したAJデータの,出力メッセージ種別が返されます。

  • データ名T4

    入力したAJデータの,出力通番の有無が返されます。

  • データ名T5

    入力したAJデータの,メッセージ出力通番が返されます。

●データ名U

入力したGJデータのデータヘッダ情報が返されます。データ名Uに返される値は,データ名Gに「G」が返されている場合にだけ有効です。

  • データ名U1

    入力したGJデータの,入力元論理端末名称が返されます。

  • データ名U2

    入力したGJデータの,アプリケーション名が返されます。

  • データ名U3

    入力したGJデータの,メッセージ入力通番が返されます。

  • データ名U4

    入力したGJデータの,入力メッセージの長さが返されます。

●データ名V

入力したジャーナルデータが返されます。ジャーナルデータとして有効なデータは,データ名Eに返された長さです。

データ名Gに「U」,「I」,「M」,「O」,「G」が返された場合にだけ,データ名Vの値は有効となります。

ステータスコード

ステータスコード

意味

00000

ジャーナルデータが,正常に設定されました。

01275

ファイルの終わりに達しました。

01101

要求コード(データ名A)が間違っています。

01271

データ名Cに設定したファイル記述子は,正常にオープンして得られた記述子ではありません。

jnlrputコマンド出力ファイルをオープンしていません。

01276

データ名Dに,データ長よりも小さい長さを設定しています。

01274

入力エラーが起こりました(読み込みエラー)。