Hitachi

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


CBLEEDBQ('ACSCTL ')

〈このページの構成〉

名称

DBキューの読み出し制御

形式

PROCEDURE DIVISIONの指定

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

DATA DIVISIONの指定

01 一意名1.
  02 データ名A  PIC X(8) VALUE 'ACSCTL  '.
  02 データ名B  PIC X(5).
  02 FILLER    PIC X(3).
  02 データ名C  PIC S9(9) COMP.
01 一意名2.
  02 データ名D  PIC X(1).
  02 データ名E  PIC X(28).

機能

DBキューの読み出しを停止,および再開します。

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

●データ名A

DBキューの読み出し制御を示す要求コードを「VALUE 'ACSCTL△△'」と設定します。

●データ名C

オプションを数値で設定します。

0

データ名Eに指定した自サーバ読み出しのDBキューを停止,再開します。

1

データ名Eに指定した自サーバ読み出しまたは他サーバ読み出しのDBキューを停止,再開します。

データ名Eに指定したDBキューが他サーバ読み出しの場合,メッセージを読み出しているTP1/EEプロセスが07-80以降かつDBキューのフォーマットタイプが1であれば,RPC通信を行ってDBキューの読み出しを停止,再開します。

●データ名D

要求種別を設定します。

VALUE 'S'

DBキューの読み出しを停止します。

VALUE 'R'

DBキューの読み出しを再開します。

●データ名E

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

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

●データ名B

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

00001

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

00004

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

00005

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

05601

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

05602

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

05603

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

05604

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

05605

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

05607

DBキューが使用できない状態です。

05609

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

05615

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

05616

設定されたDBキューのタイプは機能対象外です。※2

  • 相手読み出しDBキュー

05621

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

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

05623

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

05639

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

05651

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

05652

変更要求は実行しましたが,変更要求結果の確認処理が時間切れになりました。※1

05653

変更要求処理に失敗しました。

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

05654

変更要求処理に失敗しました。

対象のDBキューを読み出しているサーバが変更要求に対応していません。※1

05655

変更要求処理に失敗しました。※1

05691

変更要求は実行しましたが,変更要求処理の実行後に読み出し先サーバの変更を検知しました。※1※3

05692

変更要求処理を実行しましたが,変更要求処理の結果確認で05609のエラーを検知しました。※1※3

05693

変更要求処理を実行しましたが,変更要求処理の結果確認で05653のエラーを検知しました。※1※3

05694

変更要求処理を実行しましたが,変更要求処理の結果確認で05654のエラーを検知しました。※1※3

05695

変更要求処理を実行しましたが,変更要求処理の結果確認で05639のエラーを検知しました。※1※3

注※1

データ名Cに1を指定した場合に返されます。

注※2

データ名Cに0を指定した場合に返されます。

注※3

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

注意事項

  1. DBキューの読み出しトランザクションで,該当するDBキューに対してCBLEEDBQ('ACSCTL ')を呼び出した場合,読み出しトランザクション完了後に読み出しを停止します。この状態でCBLEEDBQ('INQUIRE ')を呼び出した場合,DBキューの状態は「2」(読み出し停止中)が返されます。

  2. 次の場合,CBLEEDBQ('ACSCTL ')はステータスコード「00000」でリターンします。

    • 読み出し停止状態のDBキューに対して読み出し停止を要求した場合。

    • 読み出し開始状態(再開始を含む)のDBキューに対して読み出し再開を要求した場合。

  3. DBキュー機能関連定義のdbqgrpdef定義コマンドの-kオプションに1を指定したDBキューに対してCBLEEDBQ('ACSCTL ')を呼び出した場合,DBキューのステータスが他サーバ読み出しのときでも,ステータスコードが「05616」とならないで,「00000」となることがあります。

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

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

    • 「05652」

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

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

      このステータスコードが返ったときは読み出し停止,再開要求の結果は不定です。

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

    • 「05653」

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

    • 「05654」

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

    • 「05655」

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

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

    • 「05691」

      このステータスコードが返ったときは読み出し停止,再開要求の結果は不定です。

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

    • 「05692」,「05693」,「05694」,「05695」

      これらのステータスコードが返ったときは読み出し停止,再開要求の結果は不定です。

      実行結果を確認したい場合は,変更要求結果処理確認で発生したエラーの障害要因を取り除いてから,CBLEEDBQ('INQUIRE2')またはeedbqlsコマンドで実行結果を確認してください。