ee_dbq_inquire
- 〈このページの構成〉
形式
ANSI C,C++の形式
#include <eedbq.h> int ee_dbq_inquire(char *dbque_name, EEDBQINF *dbq_inf, EELONG flags)
機能
DBキューの情報を照会します。ユーザキューアクセス機能を使用するDBキューでは,使用できません。ee_dbq_inquire2関数を使用してください。
UAPで値を設定する引数
●dbque_name
DBキュー名を27バイト以内のアスキー文字列で設定します。文字列の末尾にはNULL文字を付けてください。このNULL文字は文字列の長さに数えません。
●dbq_inf
DBキュー情報を格納するための構造体ポインタのアドレスを設定します。
●flags
次のフラグを設定します。
- EEDBQ_INF_FLAGS_0200
-
DBキュー読み出しサーバ変更機能またはDBキュー書き込み抑止機能を使用する場合に設定します。このフラグを設定すると,最新のDBキュー情報を照会します。
- EENOFLAGS
-
DBキュー読み出しサーバ変更機能およびDBキュー書き込み抑止機能以外の機能を使用する場合に設定します。このフラグを設定すると,DBキュー情報を照会します。
TP1/EEから値が返される引数
●dbq_inf
DBキュー情報が構造体EEDBQINFで返されます。構造体の形式は次のとおりです。
struct ee_dbq_inf_t{ char service_name[32]; char dbq_grp_name[32]; char dbque_name[28]; char read_srvgrp_name[32]; EEULONG sts_code; EEULONG write_event_num; EEULONG read_num; EEULONG write_max_num; EEULONG unread_count; }EEDBQINF;
-
service_name(DBキューサービス名)
指定したDBキューに接続しているDBキューサービス名を返します。接続していない場合はNULL文字を設定します。
-
dbq_grp_name(DBキューグループ名)
指定したDBキューが属するDBキューグループ名を返します。
-
dbque_name(DBキュー名)
ee_dbq_inquire関数を呼び出すときにdbque_nameに設定したDBキュー名をそのまま返します。
-
read_srvgrp_name(DBキューを読み出すサービスグループ名)※1
指定したDBキューを読み出すサービスグループ名を返します。
DBキュー機能関連定義のdbqgrpdef定義コマンドに-fオプションを指定した場合,または,-kオプションに1を指定した場合で,DBキューからメッセージを読み出すサーバを確認できないとき,および,DBキューからメッセージを読み出すサーバにサービスグループ名がないときは,値はNULL文字を設定します。
-
sts_code(ステータスコード)
-
ステータスコード1
DBキューの状態を返します。※1
・EEDBQ_QUE_STATUS_NORMAL
正常
・EEDBQ_QUE_STATUS_PSTOP
障害による読み出し停止中
・EEDBQ_QUE_STATUS_CSTOP
コマンド,TP1/EEサービス定義,またはAPI関数による読み出し停止中
・EEDBQ_QUE_STATUS_ESTOP
DB構成不正またはDBキューの内容矛盾による使用不可
・EEDBQ_QUE_STATUS_NOTRM
リソースマネジャ未接続で使用不可
-
ステータスコード2
DBキューの状態を返します。
・EEDBQ_QUE_STATUS_WTPR
書き込み抑止※1,※2
このステータスは,ステータスコード1がEEDBQ_QUE_STATUS_ESTOPまたはEEDBQ_QUE_STATUS_NOTRMの場合は無効となります。
-
-
write_event_num(メッセージ書き込み通番)
DBキューへ最後に書き込んだメッセージの通番を返します。※3
-
read_num(メッセージ読み出し通番)
DBキューから最後に読み出したメッセージの通番を返します。※3
-
write_max_num(最大書き込みメッセージ数)
DBキュー機能関連定義のdbqdef定義コマンドで指定した最大書き込みメッセージ数と同一の値を返します。
-
unread_count(未読み出しメッセージ数)
未読み出しメッセージ数を返します。※3
- 注※1
-
flagsにEEDBQ_INF_FLAGS_0200を設定し,かつDBキュー機能関連定義のdbqgrpdef定義コマンドの-kオプションに1を指定した場合,DBキューから情報を読み込みます。
- 注※2
-
flagsにEEDBQ_INF_FLAGS_0200を設定し,かつDBキュー機能関連定義のdbqgrpdef定義コマンドの-kオプションに1を指定した場合,ステータスコードEEDBQ_QUE_STATUS_WTPRは,ほかのコードとの論理和を返します。
- 注※3
-
ステータスコードが次の場合,値は参照できません。
- EEDBQ_QUE_STATUS_ESTOP
-
DB構成不正またはDBキューの内容矛盾による使用不可
- EEDBQ_QUE_STATUS_NOTRM
-
リソースマネジャ未接続で使用不可
また,該当するDBキューのタイプが相手読み出しDBキューの場合,値は返りません。
リターン値
リターン値 |
意味 |
---|---|
EE_OK |
正常に終了しました。 |
EECOMER_CNDBPP |
オフラインバッチプロセスから発行しているため,この機能は使用できません。 |
EECOMER_CNDUOC |
UOCから発行しているため,この機能は使用できません。 |
EECOMER_ENVIRON |
TP1/EEの環境下にありません。 |
EEDBQER_ARGUMENT |
引数に設定した値が間違っています。 |
EEDBQER_CONDITION |
関数の呼び出し条件が不正です。 |
EEDBQER_NO_DBQUE |
引数に設定したDBキュー名は存在しません。 |
EEDBQER_NO_LIBRARY |
DBキュー機能のライブラリがリンケージされていません。 |
EEDBQER_NO_OPTION |
DBキュー機能は使用できません。 |
EEDBQER_NOT_UAPQUE |
AP間通信機能を使用するDBキューではありません。 |
EEDBQER_RM_ACCESS |
リソースマネジャへのアクセス時にエラーが発生しました。 |
EEDBQER_RM_CONNECT |
該当するスレッドではリソースマネジャに接続されていません。 |
EEDBQER_ROLLBACK_RESERVE |
HiRDBの暗黙的ロールバックが発生したため,ee_trn_rollback_mark関数を呼び出しました。 |
EEDBQER_TIMING |
このAPI関数を呼び出せる状態ではありません。
|
注意事項
-
DBキュー読み出しサーバ変更機能またはDBキュー書き込み抑止機能を使用する場合,次に示す点に注意してください。
-
flagsにEEDBQ_INF_FLAGS_0200を設定してください。ただし,EEDBQ_INF_FLAGS_0200を設定し,かつDBキュー機能関連定義のdbqgrpdef定義コマンドの-kオプションに1を指定した場合,DBアクセスが発生するため,TP1/EEの性能が低下します。
-
flagsにEENOFLAGSを設定しないでください。EENOFLAGSを設定し,かつDBキュー機能関連定義のdbqgrpdef定義コマンドの-kオプションに1を指定した場合,read_srvgrp_nameやsts_codeのステータスコード1に最新のDBキュー情報が返らないことがあります。
-
-
ほかのTP1/EEで,ee_dbq_clear関数またはeedbqtblhコマンドで通番の強制初期化を行った場合,ee_dbq_inquire関数は初期化前の通番を返すことがあります。強制初期化後の通番を知りたい場合は,ee_dbq_inquire2関数を使用してください。