2.129.2 影響分散スタンバイレス型系切り替え機能使用時にpdtrnqingコマンドを実行する場合
(1) 機能
影響分散スタンバイレス型系切り替え機能のバックエンドサーバでトランザクションキューイングを開始又は解除します。
(2) このコマンドの目的
pdtrnqingコマンドは,影響分散スタンバイレス型系切り替え機能の計画系切り替えを行う前に,新規トランザクションをキューイングしておくために使います。
pdtrnqingコマンドを実行すると,コマンド実行対象のバックエンドサーバに対する新規トランザクションのキューイングが開始されて,新規トランザクションは待ち状態になります(実行中のトランザクションは処理されます)。
(3) 前提条件
pdtrnqingコマンドを実行する場合は,pd_ha_transactionオペランドにqueuingを指定しておく必要があります。
pd_ha_transactionオペランドにerror(省略値)を指定している場合は,トランザクションキューイングの開始又は解除をしないでpdtrnqingコマンドを終了します。この場合のリターンコードは4になります。
(4) 実行者
HiRDB管理者が実行できます。
(5) 形式
pdtrnqing 〔-d 〔-f〕〕〔-t 待ち合わせ時間〕-s バックエンドサーバ名
(6) オプション
(a) -d
トランザクションキューイングを解除する場合にこのオプションを指定します。
(b) -f
-dオプションを指定して,トランザクションキューイングを解除する場合にこのオプションを指定できます。次に示す場合にこのオプションを指定してください。
-
pdtrnqingコマンドの実行対象となるバックエンドサーバがあるユニットが停止中の場合にこのオプションを指定してください。ユニットが停止中の場合でもpdtrnqingコマンドが実行できます。
-
停止中のユニット(例えば,システムマネジャがあるユニットなど)からpdtrnqingコマンドを実行できます。
(c) -t 待ち合わせ時間 〜<符号なし整数>((1〜3600))(単位:秒)
-
トランザクションキューイングを開始するときに指定する場合
pdtrnqingコマンドは,実行中のトランザクション(pdtrnqingコマンドの実行対象となるバックエンドサーバで実行中のトランザクション)が終了するまで処理を待ち合わせます。この待ち合わせ時間を秒単位で指定します。実行中のトランザクションがここで指定した時間を経過しても終了しない場合,トランザクションキューイングを中止してpdtrnqingコマンドをエラー終了します。
-
トランザクションキューイングを解除するときに指定する場合
pdtrnqingコマンドの実行対象となるバックエンドサーバが待機中又は開始中の場合,バックエンドサーバの起動完了を待ち合わせる時間を秒単位で指定します。バックエンドサーバの起動処理が,ここで指定した時間を経過しても完了しない場合,トランザクションキューイングを解除しないでpdtrnqingコマンドをエラー終了します。
なお,ここで指定する待ち合わせ時間は,pd_ha_trn_queuing_wait_timeオペランドの指定値(デフォルト180秒)以下にしてください。pd_ha_trn_queuing_wait_timeオペランドの指定値以上の時間を指定しても無効になり,pd_ha_trn_queuing_wait_timeオペランドの値が有効になります。
(d) -s バックエンドサーバ名 〜<識別子>((1〜8))
pdtrnqingコマンドの実行対象となるバックエンドサーバを指定します。影響分散スタンバイレス型系切り替え機能を適用しているバックエンドサーバを指定できます。
(7) 規則
-
pdtrnqingコマンドは,-sオプションに指定するバックエンドサーバがあるユニットで実行できます。
-
次に示す場合,pdtrnqingコマンドは正常終了します。この場合,トランザクションキューイングの適用状態は変わりません。
-
トランザクションキューイングの適用中に,pdtrnqingコマンドを実行して再度トランザクションキューイングを開始しようとした場合
-
トランザクションキューイング中でないときに,pdtrnqing -dコマンドを実行してトランザクションキューイングを解除しようとした場合
-
-
pdtrnqingコマンドを実行する場合,コマンドの実行対象となるユニットが起動している必要があります。また,コマンドの実行対象となるバックエンドサーバが次に示す状態である必要があります。
pdtrnqingコマンドに
指定するオプション
pdtrnqingコマンドの実行対象となるバックエンドサーバの状態
停止
待機中
開始中
稼働中
停止中
なし
×
×
×
○※1
×
-d
×
△※2※3
○※2
○
×
-d -f
○
○
○
○
○
- (凡例)
-
○:pdtrnqingコマンドが実行できます。
×:pdtrnqingコマンドが実行できません。
△:バックエンドサーバの開始処理の完了を待ち合わせます。pd_ha_trn_queuing_wait_timeオペランドで指定した時間内に,バックエンドサーバの開始処理が完了した場合,トランザクションキューイングが解除されます。開始処理が完了しない場合は,pdtrnqingコマンドがエラーになります。
- 注※1
-
-sオプションに指定したバックエンドサーバで処理中のトランザクションが終了するまで,pdtrnqingコマンドを待ち合わせます。pd_ha_trn_queuing_wait_timeオペランドで指定した待ち合わせ時間を超えてもトランザクションが終了しない場合は,pdtrnqingコマンドがエラーになります。
- 注※2
-
-sオプションに指定したバックエンドサーバが待機中又は開始中の場合,バックエンドサーバの開始処理の完了を待ち合わせます。pd_ha_trn_queuing_wait_timeオペランドで指定した待ち合わせ時間を経過してもバックエンドサーバの開始処理が完了しない場合は,pdtrnqingコマンドがエラーになります。
- 注※3
-
クラスタソフトウェアのコマンドでバックエンドサーバを実行系に切り替えた直後から,HiRDBが管理するサーバステータスを「開始中」にするまでの間にpdtrnqing -dコマンド実行するとエラーになります。このため,バックエンドサーバが待機中のときに,バックエンドサーバの開始処理を待ち合わせます。
(8) 注意事項
-
トランザクションキューイングの解除時,バックエンドサーバが待機中の場合はバックエンドサーバの開始処理の完了を待ち合わせます。そのため,対象とするバックエンドサーバを間違った場合(待機中のままのバックエンドサーバを対象とした場合),pdtrnqingコマンドはすぐにエラーにはなりません。この場合,-tオプションで指定した待ち合わせ時間が経過したらpdtrnqingコマンドがエラー終了します。
-
次に示す操作をした場合,トランザクションキューイングは自動的に解除されます。
-
トランザクションキューイングを行っているバックエンドサーバを再開始した場合(バックエンドサーバが系切り替えした場合も含む)
-
システム,ユニット,サーバを終了した場合(pdstopコマンド)※1※2
-
修正版HiRDBの入れ替え(pdprgrenewコマンド)
-
システム構成変更コマンドの実行(pdchgconfコマンド)
- 注※1
-
トランザクションキューイング中のユニット,又はユニット内のサーバを終了した場合にトランザクションキューイングが解除されます。
- 注※2
-
pdstopコマンドがエラー終了した場合でも,トランザクションキューイングが解除されることがあります。
-
(9) リターンコード
pdtrnqingコマンドのリターンコードを次に示します。
0:正常終了
- 4:警告終了
-
pd_ha_transactionオペランドにqueuingが指定されていないため,トランザクションキューイングができないときに返されるリターンコードです。
8:エラー終了
- 12:エラー終了
-
リターンコードの8及び12は,トランザクションキューイングの開始又は解除が実行できなかったときに返されるリターンコードです。このとき,syslogfile又は標準エラー出力にメッセージが出力されます。
実行環境の不正や,操作誤りなどの場合はリターンコード8で終了し,それ以外の場合はリターンコード12で終了します。