Hitachi

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


CBLEEDBQ('MSGREFER')

〈このページの構成〉

名称

メッセージの参照読み出し

形式

PROCEDURE DIVISIONの指定

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

DATA DIVISIONの指定

01 一意名1.
  02 データ名A  PIC X(8) VALUE 'MSGREFER'.
  02 データ名B  PIC X(5).
  02 FILLER    PIC X(3).
  02 データ名C  PIC S9(9) COMP VALUE ZERO.
  02 データ名D  PIC X(28).
  02 データ名E  PIC 9(9) COMP-X.
01 一意名2.
  02 データ名F  PIC 9(9) COMP-X.
  02 データ名G  PIC X(n).
01 一意名3.
  02 データ名H  PIC 9(9) COMP.

機能

読み出し済みメッセージを読み出します(参照読み出し)。

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

●データ名A

メッセージの参照読み出しを示す要求コードを「VALUE 'MSGREFER'」と設定します。

●データ名C

0を設定します。

●データ名D

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

●データ名E

読み出すメッセージの通番を設定します。1〜2147483647の値を設定してください。

●データ名F

読み出したメッセージを格納する領域の長さを設定します(単位:バイト)。1〜8388608の値を指定してください。

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

●データ名G

読み出したメッセージが返されます。

●データ名H

読み出したメッセージの長さが返されます(単位:バイト)。

[図データ]

読み出したメッセージがオーバフローしてしまう場合(ステータスコード05620)は次のようになります。

[図データ]

●データ名B

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

00001

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

00004

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

00005

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

05601

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

05602

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

05603

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

  • 通番の初期化中です。

05604

要求されたDBキューは存在しません。

05605

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

05606

バッファ長が指定範囲外です。

05607

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

05608

メモリが不足しました。

05609

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

05615

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

05616

設定されたDBキューのタイプはDBキュー機能で使用できません。

  • 相手読み出しDBキュー

05619

データ名Eに指定した値は不当な値です。

  • 1〜最大メッセージ数の範囲外の通番です。

  • 読み出し済みの通番ではありません。

05620

読み出したメッセージがバッファをオーバフローしました。

05621

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

05623

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

05639

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

注意事項

【TP1/FSP限定】交替用メッセージ表書き込み機能使用時に,この関数内で行うメッセージ表へのアクセスで障害が発生すると,この関数はリターンしないでトランザクションがリトライロールバックする場合があります。