ee_dbq_msgrefer2
- 〈このページの構成〉
形式
ANSI C,C++の形式
#include <eedbq.h> int ee_dbq_msgrefer2 (char *dbque_name, EEULONG read_num, EEULONG buf_len, void *buf_pt, EEULONG *out_len, EELONG flags)
機能
通番指定で,メッセージを読み出します(参照読み出し)。
他サーバ読み出しのDBキューのメッセージや,未読み出しのメッセージを読み出せます。
UAPで値を設定する引数
●dbque_name
読み出し対象のDBキュー名を27バイト以内のアスキー文字列で設定します。文字列の最後にはNULL文字を設定してください。このNULL文字は文字列の長さに数えません。
●read_num
読み出し対象のメッセージの通番を設定します。
●buf_len
読み出したメッセージを格納する領域の長さを設定します。65以上の値を指定してください。
●buf_pt
読み出したメッセージを格納する領域のアドレスを設定します。読み出したいメッセージの長さ+64バイトの領域を用意してください。先頭から64バイトはTP1/EEで使用します。
buf_ptには,8バイトで境界調整した領域のアドレスを指定してください。
●out_len
読み出したメッセージの長さを格納する領域のアドレスを設定します。
●flags
EENOFLAGSを設定します。
TP1/EEから値が返される引数
●buf_pt
読み出したメッセージが返されます。読み出したメッセージの先頭はbuf_pt+64バイトのアドレスです。
●out_len
読み出したメッセージの長さが返されます(単位:バイト)。
読み出したメッセージがオーバフローしてしまう場合(リターン値EEDBQER_BUF_OVERFLOW)は次のようになります。
リターン値
リターン値 |
意味 |
---|---|
EE_OK |
正常に終了しました。 |
EECOMER_CNDBPP |
オフラインバッチプロセスから発行しているため,この機能は使用できません。 |
EECOMER_CNDUOC |
UOCから発行しているため,この機能は使用できません。 |
EECOMER_ENVIRON |
TP1/EEの環境下にありません。 |
EEDBQER_ARGUMENT |
引数に設定した値が間違っています。 |
EEDBQER_BUF_LEN |
バッファ長が指定範囲外です。 |
EEDBQER_BUF_OVERFLOW |
読み出したメッセージがバッファをオーバフローしました。 |
EEDBQER_CONDITION |
関数の呼び出し条件が不正です。
|
EEDBQER_MEMORY_SHORT |
メモリが不足しました。 |
EEDBQER_NO_DBQUE |
要求されたDBキューは存在しません。 |
EEDBQER_NO_LIBRARY |
DBキュー機能のライブラリがリンケージされていません。 |
EEDBQER_NO_OPTION |
DBキュー機能は使用できません。 |
EEDBQER_READ_NUM |
read_numに指定した値は不当な値です。
|
EEDBQER_RM_ACCESS |
リソースマネジャアクセス時にエラーが発生しました。 |
EEDBQER_RM_CONNECT |
該当するスレッドではリソースマネジャに接続されていません。 |
EEDBQER_ROLLBACK_RESERVE |
HiRDBの暗黙的ロールバックが発生したため,ee_trn_rollback_mark関数を呼び出しました。 |
EEDBQER_STOP |
DBキューが使用できない状態です。 |
EEDBQER_TIMING |
このAPI関数を呼び出せる状態ではありません。
|
EEDBQER_UNRESOLVABLE |
その他のエラーが発生しました。 |
注意事項
【TP1/FSP限定】交替用メッセージ表書き込み機能使用時に,この関数内で行うメッセージ表へのアクセスで障害が発生すると,この関数はリターンしないでトランザクションがリトライロールバックする場合があります。