Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


CBLEEDBQ('INQUIRE2')

〈このページの構成〉

名称

DBキュー情報の照会

形式

PROCEDURE DIVISIONの指定

CALL 'CBLEEDBQ' USING 一意名1 一意名2

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'INQUIRE2'.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC S9(9) COMP.
   02 データ名D  PIC X(28).
01 一意名2.
   02 データ名E  PIC X(32).
   02 データ名F  PIC X(32).
   02 データ名G  PIC X(28).
   02 データ名H  PIC X(32).
   02 データ名I  PIC 9(9) COMP.
   02 データ名J  PIC 9(9) COMP.
   02 データ名K  PIC 9(9) COMP.
   02 データ名L  PIC 9(9) COMP.
   02 データ名M  PIC 9(9) COMP.
   02 データ名N  PIC X(8).
   02 データ名O  PIC X(16).
   02 データ名P  PIC 9(9) COMP.
   02 データ名Q  PIC 9(9) COMP.
   02 データ名R  PIC X(5).
   02 データ名S  PIC X(1).
   02 FILLER    PIC X(74).

機能

DBにアクセスしてDBキューの情報内容を照会します。

DBキューのフォーマットタイプが1のDBキューに対して実行できます。

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

●データ名A

DBキュー情報の照会要求を示す要求コードを「VALUE 'INQUIRE2'」と設定します。

●データ名C

要求種別を,数値で設定します。

0

メッセージを読み出しているTP1/EEプロセスの読み出し状態(データ名I)の照会が不要な場合に設定します。

メッセージを読み出しているTP1/EEプロセスのDBキューの読み出し状態を照会するためのRPC通信は行いません。

1

メッセージを読み出しているTP1/EEプロセスの読み出し状態(データ名I)の照会が必要な場合に設定します。

データ名Dに指定したDBキューを読み出しているTP1/EEプロセスがAPI発行元のプロセスと異なる場合,RPC通信を行ってDBキューの読み出し状態を照会します。

データ名Cに1を指定した場合,メッセージを読み出しているTP1/EEのバージョンが07-80以降である必要があります。

●データ名D

照会するDBキュー名を,27バイト以内のアスキー文字列で設定します。文字列の最後には,空白を設定してください。この空白は文字列の長さに数えません。

TP1/EEから値が返されるデータ領域

●データ名E

指定したDBキューに現在接続しているDBキューサービス名が返されます。接続していない場合,およびユーザキューアクセス機能を使用したDBキューの場合はLOW-VALUEが設定されます。

●データ名F

指定したDBキューが属するDBキューグループ名が返されます。文字列の最後はLOW-VALUEです。

●データ名G

データ名Dに設定したDBキュー名が返されます。文字列の最後はLOW-VALUEです。

●データ名H

指定したDBキューを読み出すサービスグループ名が返されます。文字列の最後はLOW-VALUEです。読み出すサーバにサービスグループ名がない場合,LOW-VALUEが設定されます。

●データ名I

データ名Cに1を指定した場合の,DBキューの読み出し状態が返されます。

データ名Cに0を指定した場合,DBキューを読み出しているTP1/EEプロセスがCBLEEDBQ('INQUIRE2')の発行元のプロセスと異なっていると,DBキュー状態1が読み出し停止中のときでも0(正常)が返されます。

DBキューの読み出し状態は,DBキューの状態1とDBキューの状態2の和で返されます。

DBキューの状態1:

DBキューの状態1が次のどれかで返されます。

0:正常

1:障害による読み出し停止中

2:コマンド,定義,またはAPI関数による読み出し停止中

4:DB構成不正またはDBキューの内容矛盾による使用不可

8:リソースマネジャ未接続で使用不可

DBキューの状態2:

DBキューの状態2が次で返されます。

4096:書き込み抑止中

DBキューの状態1が4または8のときは加算しません。

このとき,書き込み抑止状態は不明となります。

●データ名J

DBキューへ最後に書き込んだメッセージの通番が返されます。データ名IのDBキュー状態1が4または8の場合は参照できません。

●データ名K

DBキューから最後に読み出したメッセージの通番が返されます。データ名IのDBキュー状態1が4または8の場合は参照できません。

●データ名L

定義に指定した最大書き込みメッセージ数と同一の値が設定されます。

●データ名M

未読み出し数が返されます。データ名IのDBキュー状態1が4または8の場合は参照できません。

●データ名N

読み出すサーバの基盤種別が返されます。データ名IのDBキュー状態1が4または8の場合は参照できません。

文字列の最後はLOW-VALUEです。

TP1EE:TP1/EE

CosmiRM:uCosminexus Reliable Messaging

●データ名O

該当するDBキューの読み出しを行うシステム種別が返されます。データ名IのDBキュー状態1が4または8の場合は参照できません。

文字列の最後はLOW-VALUEです。

TP1/EEの場合,ノード識別子が返されます。

uCosminexus Reliable Messagingの場合,RMSystemNameで指定したシステム名称が返されます。

●データ名P

DBキューの種別が返されます。

0:AP間通信機能を使用したDBキュー

1:ユーザキューアクセス機能を使用したDBキュー

●データ名Q

DBキューに付与した属性の論理和が返されます。データ名IのDBキュー状態1が4または8の場合は参照できません。

0:付与した属性なし

1:上書き抑止属性

2:通番初期化属性

4:データ連携支援書き込み

8:交替用メッセージ表書き込み機能を使用

●データ名R

該当するDBキューを読み出すTP1/EEプロセスのTP1/Server Baseのノード識別子が返されます。文字列の最後はLOW-VALUEです。データ名IのDBキュー状態1が4または8の場合は参照できません。

次の条件をすべて満たす場合にTP1/Server Baseのノード識別子が返されます。

  • 該当するDBキューを読み出すサーバの基盤種別がTP1/EE

  • 該当するDBキューを読み出すTP1/EEプロセスでネーム機能が有効

  • 該当するDBキューを読み出すTP1/EEプロセスのTP1/EEバージョンが07-80以降

TP1/Server Baseのノード識別子を返さない場合は,LOW-VALUEが返されます。

●データ名S

該当するDBキューに対する書き込み禁止状態を返します。

X'00':書き込み可能状態

X'01':書き込み禁止状態

●データ名B

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

00001

TP1/EEの環境下にありません。

00004

UOCから発行しているため,この機能は使用できません。

00005

オフラインバッチプロセスから発行しているため,この機能は使用できません。

05601

データ名に設定した値が間違っています。

05602

DBキュー機能は使用できません。

05603

この関数を呼び出せる状態ではありません。

  • 通番の初期化中です。

05604

データ名に設定したDBキュー名は存在しません。

05605

該当するスレッドではリソースマネジャに接続されていません。

05609

リソースマネジャアクセス時にエラーが発生しました。

05615

その他のエラーが発生しました。

05621

関数の呼び出し条件が不正です。

  • トランザクション種別が不正です。

05623

DBキュー機能のライブラリがリンケージされていません。

05639

HiRDBの暗黙的ロールバックが発生したため,CBLEETRN('ROLLMARK')を呼び出しました。

05651

データ名Dに設定したDBキューのフォーマットタイプが不正です。

05652

情報照会処理が時間切れになりました。※1

05653

情報照会処理に失敗しました。

対象のDBキューを読み出しているサーバが存在しません。※1

05654

情報照会処理に失敗しました。

対象のDBキューを読み出しているサーバが情報照会処理に対応していません。※1

05655

情報照会処理が失敗しました。※1

05691

情報照会処理は実行しましたが,情報照会処理の実行後に読み出し先サーバの変更を検知しました。※1,※2

注※1

データ名Cに1を指定した場合にだけ発生するステータスコードです。

注※2

DBキューがHiRDBの場合にだけ発生するステータスコードです。

注意事項

  1. データ名Cに1を指定し,かつDBキューがOracleの場合にDBキュー読み出し先サーバ変更機能とCBLEEDBQ('INQUIRE2')が競合すると,ステータスコードが「00000」でもDBキューの読み出し状態が最新の状態にならないことがあります。

  2. CBLEEDBQ('INQUIRE2')のエラーリターン時は,ステータスコード別に次のように対処してください。

    • 「05652」

      CBLEEDBQ('INQUIRE2')の発行元のTP1/EEプロセスが出力するメッセージで,照会先のTP1/EEプロセスを特定します。

      照会先のTP1/EEプロセスが出力するエラーメッセージを基に障害を取り除いてください。

    • 「05653」

      DBキュー読み出し先サーバ変更機能を使用して読み出し先サーバを決定するか,該当のDBキューを読み出すTP1/EEプロセスを開始してください。

    • 「05654」

      メッセージを読み出しているサーバが07-80以降のTP1/EEであることを確認してください。

    • 「05655」

      CBLEEDBQ('INQUIRE2')の発行元のTP1/EEプロセスが出力する次のメッセージを参照して,障害を取り除いてください。

      KFSB40320-E,KFSB40322-E,KFSB40350-E,KFSB40352-E

    • 「05691」

      CBLEEDBQ('INQUIRE2')を再発行するか,またはeedbqlsコマンドで実行結果を確認してください。