ee_dbq_acsctl
形式
ANSI C,C++の形式
#include <eedbq.h> int ee_dbq_acsctl(EEULONG access_flg, char *dbque_name, EELONG flags)
機能
DBキューの読み出しを停止,および再開します。
UAPで値を設定する引数
●access_flg
次のフラグを設定します。
- EEDBQ_ACSCTL_STOP
-
DBキューの読み出しを停止します。
- EEDBQ_ACSCTL_RESTART
-
DBキューの読み出しを再開します。
●dbque_name
DBキュー名を27バイト以内のアスキー文字列で設定します。文字列の末尾にはNULL文字を付けてください。このNULL文字は文字列の長さに数えません。
●flags
オプションを次に示す形式で設定します。
{EENOFLAGS|EEDBQ_ACSCTL_ANY}
- EENOFLAGS
-
dbque_nameに指定した自サーバ読み出しのDBキューを停止,再開します。
- EEDBQ_ACSCTL_ANY
-
dbque_nameに指定した自サーバ読み出しまたは他サーバ読み出しのDBキューを停止,再開します。
dbque_nameに指定したDBキューが他サーバ読み出しの場合,メッセージを読み出しているTP1/EEプロセスが07-80以降かつDBキューのフォーマットタイプが1であれば,RPC通信を行ってDBキューの読み出しを停止,再開します。
リターン値
リターン値 |
意味 |
---|---|
EE_OK |
正常に終了しました。 |
EECOMER_CNDBPP |
オフラインバッチプロセスから発行しているため,この機能は使用できません。 |
EECOMER_CNDUOC |
UOCから発行しているため,この機能は使用できません。 |
EECOMER_ENVIRON |
TP1/EEの環境下にありません。 |
EEDBQER_ARGUMENT |
引数に設定した値が間違っています。 |
EEDBQER_CONDITION |
関数の呼び出し条件が不正です。
|
EEDBQER_FUNC_OPT |
引数に設定したDBキューのフォーマットタイプが不正です。※1 |
EEDBQER_FWD_CHGR |
変更要求処理を実行しましたが,変更要求処理の実行後に読み出し先サーバの変更を検知しました。※1,※2 |
EEDBQER_FWD_DEST |
変更要求処理に失敗しました。 対象のDBキューを読み出しているサーバが存在しません。※1 |
EEDBQER_FWD_SEND |
変更要求処理に失敗しました。※1 |
EEDBQER_FWD_TIMED_OUT |
変更要求は実行しましたが,変更要求結果の確認処理が時間切れになりました。※1 |
EEDBQER_FWD_UN_FWD_DEST |
変更要求処理を実行しましたが,変更要求処理の結果確認でEEDBQER_FWD_DESTを検知しました。※1,※2 |
EEDBQER_FWD_UN_FWD_VER |
変更要求処理を実行しましたが,変更要求処理の結果確認でEEDBQER_FWD_VERを検知しました。※1,※2 |
EEDBQER_FWD_UN_RMACCESS |
変更要求処理を実行しましたが,変更要求処理の結果確認でEEDBQER_RM_ACCESSが発生しました。※1,※2 |
EEDBQER_FWD_UN_ROLLBACK_RESERVE |
変更要求処理を実行しましたが,変更要求処理の結果確認でEEDBQER_ROLLBACK_RESERVEを検知しました。※1,※2 |
EEDBQER_FWD_VER |
変更要求処理に失敗しました。 対象のDBキューを読み出しているサーバが変更要求に対応していません。※1 |
EEDBQER_NO_DBQUE |
引数に設定したDBキュー名は存在しません。 |
EEDBQER_NO_LIBRARY |
DBキュー機能のライブラリがリンケージされていません。 |
EEDBQER_NO_OPTION |
DBキュー機能は使用できません。 |
EEDBQER_QUE_TYPE |
設定されたDBキューのタイプは機能対象外です。※3
|
EEDBQER_RM_ACCESS |
リソースマネジャアクセス時にエラーが発生しました。※1 |
EEDBQER_RM_CONNECT |
該当するスレッドではリソースマネジャに接続されていません。※1 |
EEDBQER_ROLLBACK_RESERVE |
HiRDBの暗黙的ロールバックが発生したため,ee_trn_rollback_mark関数を呼び出しました。※1 HiRDBの暗黙的ロールバックについては,HiRDBシリーズのマニュアルを参照してください。 |
EEDBQER_STOP |
DBキューが使用できない状態です。 |
EEDBQER_TIMING |
このAPI関数を呼び出せる状態ではありません。 |
EEDBQER_UNRESOLVABLE |
そのほかのエラーが発生しました。 |
注意事項
-
DBキューの読み出しトランザクションで,該当するDBキューに対してee_dbq_acsctl関数を呼び出した場合,読み出しトランザクション完了後に読み出しを停止します。この状態でee_dbq_inquire関数を呼び出した場合,DBキューの状態はEEDBQ_QUE_STATUS_CSTOP(読み出し停止中)が返されます。
-
次の場合,ee_dbq_inquire関数はリターン値EE_OKでリターンします。
-
読み出し停止状態のDBキューに対して読み出し停止を要求した場合
-
読み出し開始状態(再開始を含む)のDBキューに対して読み出し再開を要求した場合
-
-
DBキュー機能関連定義のdbqgrpdef定義コマンドの-kオプションに1を指定したDBキューに対してee_dbq_acsctl関数を呼び出した場合,DBキューのステータスが他サーバ読み出しのときでも,リターン値がEEDBQER_QUE_TYPEとならないで,EE_OKとなることがあります。
-
flagsにEEDBQ_ACSCTL_ANYを指定した場合に,DBキュー読み出し先サーバ変更機能とee_dbq_acsctl関数が競合すると,リターン値がEE_OKでもDBキューの読み出し状態が読み出し停止,再開状態にならないことがあります。
-
ee_dbq_acsctl関数のエラーリターン時は,リターン値別に次のように対処してください。
-
EEDBQER_FWD_TIMED_OUT
ee_dbq_acsctl関数の発行元のTP1/EEプロセスが出力するメッセージで要求先のTP1/EEプロセスを特定します。
要求先のTP1/EEプロセスが出力するエラーメッセージを基に障害を取り除いてください。
このリターン値が返ったときは読み出し停止,再開要求の結果は不定です。
実行結果を確認したい場合は,ee_dbq_inquire2関数またはeedbqlsコマンドで実行結果を確認してください。
-
EEDBQER_FWD_DEST
DBキュー読み出し先サーバ変更機能を使用して読み出し先サーバを決定するか,該当のDBキューを読み出すTP1/EEプロセスを開始してください。
-
EEDBQER_FWD_VER
メッセージを読み出しているサーバが07-80以降のTP1/EEであることを確認してください。
-
EEDBQER_FWD_SEND
ee_dbq_acsctl関数の発行元のTP1/EEプロセスが出力する次のメッセージを参照して,障害を取り除いてください。
KFSB40320-E,KFSB40322-E,KFSB40350-E,KFSB40352-E
-
EEDBQER_FWD_CHGR
このリターン値が返ったときは読み出し停止,再開要求の結果は不定です。
実行結果を確認したい場合は,ee_dbq_inquire2関数またはeedbqlsコマンドで実行結果を確認してください。
-
EEDBQER_FWD_UN_RMACCESS,EEDBQER_FWD_UN_FWD_VER,EEDBQER_FWD_UN_FWD_DEST,EDBQER_FWD_UN_ROLLBACK_RESERVE
これらのリターン値が返ったときは読み出し停止,再開要求の結果は不定です。
実行結果を確認したい場合は,変更要求結果処理確認で発生したエラーの障害要因を取り除いてから,ee_dbq_inquire2関数またはeedbqlsコマンドで実行結果を確認してください。
-