hdestate(抽出側Datareplicatorのステータス情報の取得)
機能
コマンドを実行した時点の抽出側Datareplicatorの状態を標準出力に出力します。出力される情報は,次のとおりです。
- 共通情報
抽出側Datareplicator識別子,総ノード数,接続ノード数など,共通な情報です。
- ノード情報
ノードホスト名,抽出ノードマスタプロセスの状態など,ノードの状態を表す情報です。
- 抽出情報キューファイル情報
抽出情報キューファイルの使用状態を表す情報です。
- 抽出処理情報
抽出プロセスの状態,抽出情報キューファイルの書き込み位置など,抽出処理の状態を表す情報です。
- 送信処理情報
送信先識別子,送信プロセスの状態など,送信処理の状態を表す情報です。
形式
hdestate〔 -b HiRDBサーバ名 〕〔 -s 送信先識別子 〕
|
オプション
- -b HiRDBサーバ名 ~〈8文字の記号名称〉
hdestateコマンドの処理対象となる抽出環境をHiRDBサーバ名で指定します。指定したサーバ名に対応する抽出側Datareplicatorのステータス情報を取得します。抽出側HiRDBがシングルサーバの場合も指定してください。
- -s 送信先識別子
特定の送信先識別子に対する抽出側Datareplicatorのステータス情報を取得する場合に,取得の対象とする送信先識別子を指定します。送信先識別子に**を指定した場合は,引数不正エラーとなります。
特定のサーバ名の中の,特定の送信先識別子に対するステータス情報を取得する場合には,-bオプションと -sオプションの両方を指定します。オプションの指定順序に制限はありません。
オプションをすべて省略すると,すべてのサーバ識別子とすべての送信先識別子に対するステータス情報を取得します。
規則
- hdestateコマンドを実行後,正常終了すると0が返されます。異常終了すると1が返されます。
- hdestateコマンドは,抽出側Datareplicatorが稼働中のときだけ実行できます。
- 抽出側Datareplicatorでは,hdestateコマンドを実行した時点でステータス情報を取得し,標準出力に出力します。このため出力される情報は,実際の抽出側Datareplicatorの状態とは多少ずれが発生することがあります。
- 欠番指定された送信先識別子の情報は出力されません。
出力形式
![[図データ]](figure/rz07s030.gif)
![[図データ]](figure/rz07s031.gif)
共通情報
- hdeid=fa
抽出側Datareplicator識別子が出力されます。
- Shmid:3502
共用メモリidが出力されます。抽出側HiRDBがパラレルサーバの場合には,システムマネジャ側で取得した共用メモリidが出力されます。
- PID:hdemaster=4579
抽出マスタプロセスidが出力されます。
- Total node count=1~ Connecting node count=1
Total node countには,抽出マスタプロセスが管理する全サーバマシン数が出力されます。Connecting node countには,接続中のサーバマシンの数が出力されます。
- nodecontrol:server
ノードマスタプロセスの制御方式(抽出システム定義のnodecontrolオペランド指定値)が出力されます。ノードマスタプロセスの制御方式は次のように出力されます。
- unit:ユニット単位にノードマスタプロセスを起動
- server:サーバ単位にノードマスタプロセスを起動
ノード情報
- host name=host01
ノードに対応するホスト名が出力されます。
- current host name = host0001
nodecontrolでの出力がserverの場合だけ,Communication statusで出力される通信の状態に従って次のように出力されます。
- Communication statusの通信の状態がonlineの場合
current host name:ノードマスタプロセス起動先として現在認識しているホスト名
- Communication statusの通信の状態がofflineの場合
Server name:サーバ名
- Communication status:online
抽出マスタプロセスと抽出ノードマスタプロセスとの間の通信状態が出力されます。通信の状態は次のように出力されます。
- online:接続中
- offline:エラー切断中
状態がエラー切断中の場合には,これ以降の情報は出力されません。
- Shmid:common=1162 ~ msginf=1164
抽出ノードマスタプロセスが取得した共用メモリidが出力されます。共用メモリidの種類は次のとおりです。
- common:プロセス間連絡用共用メモリid
- definf:定義情報格納用共用メモリid
- msginf:メッセージ情報格納用共用メモリid
- Semid:923
抽出ノードマスタプロセスが取得したメッセージ出力排他用セマフォidが出力されます。
- PID:hdenodemst=2247
抽出ノードマスタプロセスのプロセスidが出力されます。
抽出情報キューファイル情報
- Server name=pbes01 ~ Semid:925
Server nameには,抽出側HiRDBのサーバ名が出力されます。Replication-node idには,データ連動識別子が出力されます。Semidには,抽出ノードマスタプロセスが取得したセマフォidが出力されます。
- wrap count=0
抽出側Datareplicatorの初期開始時から,抽出情報キューファイルを何順したかを出力します。
- qufile001 ~ status:unused
抽出環境定義のqufile001 ~ 016オペランドで指定した抽出情報キューファイルごとに,使用状況を出力します。使用状況は次のように出力されます。
- using:使用中(更新情報が格納されている場合は常にusing)
- unused:未使用
- max used ratio:2005/03/24 09:21:18 70%
抽出情報キューファイルの使用率が最大値を示した日時と,その使用率が表示されます。
抽出情報キューファイルを初期化した時点,又はhdechgstatusコマンドで最大使用率をリセットした時点の表示形式は次のとおりです。
max used ratio : ****/**/** **:**:** 0%
- current used ratio:2005/03/24 09:51:18 10%
hdestateコマンドを実行した日時と,hdestateコマンドを実行した時点の抽出情報キューファイルの使用率が表示されます。
すべての送信先が縮退している状態のときは,使用率が「--」と表示されます。
抽出処理情報
- Status:active
抽出プロセスの状態が出力されます。状態は次のように出力されます。
- active:稼働中
- not active:停止中
- not active(error):エラー停止中
停止中,又はエラー停止中の場合には,抽出処理情報の2.は出力されません。
- PID:hdecapture=2248
抽出プロセスidが出力されます。
- HiRDB system log overwrite:not overwrite
抽出側HiRDBのシステムログファイルでの,未抽出ログ上書き発生の有無が出力されます。
- overwrite:上書きあり
- not overwrite:上書きなし
- Queue write position:~ offset=1024
抽出情報キューファイルの書き込み位置が出力されます。
qufilexxxには抽出環境定義で指定したqufile001 ~ 016オペランドのうちの,更新情報を書き込んでいる抽出情報キューファイルに対応するものが出力されます。offsetには,更新情報の書き込み位置が,ファイルの先頭からのオフセットで出力されます。
- Extract delay times:0000:00:05/0000:10:00
抽出側のHiRDBでコミットした時点から,その更新データを抽出情報キューファイルに書き込むまでの経過時間,及び抽出定義に指定した値が出力されます。表示形式は次のとおりです。
表示形式 | 説明 |
---|
0000:00:00/定義値 | 抽出プロセスから何も抽出されていません。 |
****:**:**/****:**:** | 抽出環境定義のextract_delay_limit_timeオペランドに0が指定されています。 |
--:----:--/定義値 | 9999:59:59を超えました。 |
送信処理情報
- Send name=send01
抽出システム定義のsendid01 ~ 64オペランドで指定した送信先識別子が出力されます。
- Status:queue read
送信プロセスの状態が出力されます。状態は次のように出力されます。
- init:初期化処理中
- queue read:抽出情報キューファイルの読み込み中
- data transmission:データ送信中
- hold:送信処理閉塞中
- not active:停止中
- not active(error):エラー停止中
状態が送信処理閉塞中,又はエラー停止中の場合,送信処理情報の3.は出力されません。
- PID:hdesender=2249
送信プロセスidが出力されます。ただし,抽出システム定義のsendcontrolオペランドの設定がsendmstの場合は,常に0になります。更新SQL出力処理が起動している場合には,更新SQL出力プロセスidが出力されます。
- Service name:serv01
送信サービス名が出力されます。
- Send host name:shost01
送信先ホスト名が出力されます。
- Send system id:aa
送信先の反映側Datareplicator識別子が出力されます。
- Send delay times:0000:00:10/0000:10:00
抽出側のHiRDBでコミットした時点から,その更新データを反映側システムに送信して受信が完了するまでの経過時間,及び送信定義に指定した値が出力されます。表示形式は次のとおりです。
表示形式 | 説明 |
---|
0000:00:00/定義値 | 送信プロセスから何も送信されていません。 |
****:**:**/****:**:** | 送信環境定義のsend_delay_limit_timeオペランドに0が指定されています。 |
--:----:--/定義値 | 9999:59:59を超えました。 |
表示なし | 更新SQL出力機能を使用しています。 |
- send count:3
送信処理の開始時からの送信処理の回数が出力されます。
- transmission transaction count=50
送信処理の開始時からの送信トランザクション数が出力されます。抽出システム定義のsend_sounter_resetオペランドにfalseを指定している場合,抽出側Datareplicatorを再開始しても前回起動時の内容が引き継がれます。
- transaction count2=10
抽出側DBを更新したときのトランザクションとは別に,抽出側Datareplicatorが作成・送信したトランザクション数が出力されます。transmission transaction countの送信トランザクション数には含まれません。
例えば,WITHOUT ROLLBACKオプションを指定している表は,1回の更新を1トランザクションとして扱います。このため,WITHOUT ROLLBACKオプションを指定している表と指定していない表を同じトランザクション内で更新しても,反映側Datareplicatorには別々のトランザクションとして送信・反映されます。このときに,抽出側Datareplicatorが作成・送信した,WITHOUT ROLLBACKオプションを指定している表のトランザクション数が出力されます。
- undetermined transaction count=5
送信処理の開始時からの未解決トランザクション数が出力されます。
- ins=50 ~ event=0
送信処理開始時からの操作別の送信データ数が出力されます。抽出システム定義のsend_counter_resetオペランドにfalseを指定している場合,抽出側Datareplicatorを再開始しても前回起動時の内容が引き継がれます。
操作別の送信データ数は,次のように出力されます。
- ins:insertデータ数
- upd:updateデータ数
- del:deleteデータ数
- purge:purge tableデータ件数
- event:イベント発行数
- ins = 0 ~ event = 0
WITHOUT ROLLBACKオプションを指定している表のデータ連動時,update以外の更新については送信をスキップします。このスキップに関する,送信処理開始時からの操作別のスキップデータ数が出力されます。
操作別のスキップデータ数は,次のように出力されます。
- ins:insertデータ数
- upd:updateデータ数
- del:deleteデータ数
- purge:purge tableデータ件数
- event:イベント発行数
- Queue read position:~ offset=33792
抽出情報キューファイルの読み込み位置が出力されます。
qufilexxxには抽出環境定義で指定したqufile001 ~ 016オペランドのうち,更新情報を読み込んでいる抽出情報キューファイルに対応するものが出力されます。offsetには,更新情報の読み込み位置が,ファイルの先頭からのオフセットで出力されます。
更新SQL出力処理の場合,Queue read positionの値は更新されません。
- Queue current pos
抽出情報キューファイルの読み込み位置が出力されます。更新SQL出力処理が起動中の場合に表示されます。
- system id=a1 ~ count=5
更新情報の送信抑止情報が出力されます。system idには,更新情報の受信元システム識別子が出力されます。countには,送信抑止データ数が出力されます。
補 足
- 抽出情報キューファイル情報の2.,送信処理情報の8.,11.で出力される値は,4294967295を超えると0に戻ります。
- 送信処理情報の9.,12.,13.で出力される値は,18446744073709551615を超えると0に戻ります。
- 送信処理情報の7.,8.,9.,11.,15.で出力される情報は,抽出側Datareplicatorの起動単位でリセットされます。
- 送信処理情報の9.,10.,12.,13.で出力される情報は,次の契機でリセットされます。
- 抽出側Datareplicatorの初期化(部分初期化を含む)又は起動※
- 送信環境定義のeventcntresetオペランドに指定したイベントの検知
注※ 抽出システム定義のsend_counter_resetオペランドにfalseを指定している場合
- 繰返し列に対して,SET句,ADD句又はDELETE句が混在するUPDATEの更新情報を送信すると,送信処理情報の12.で出力されるupdateデータ数は実際の更新件数よりも多くなります。繰返し列の場合で,12.で出力されるupdateデータ数と実際の更新件数を一致させたいときは,句ごとに分けてUPDATEで更新してください。