はじめに

 
InfinIDBはログファイルにステータスコード(数字)を使ってプロセスの状態を示すケースが多くあります。
※InfiniDB 4.0からは、ステータスコード(数字)からASCII表記に変更になりましたので、InfiniDB 3.5までが該当します。
以下に例を記載します。

(例)/var/log/Calpont/debug.logの一部
ProcessMonitor[8634]: 12.765470 |0|0|0| D 18 CAL0000: statusControl: Set Process PrimProc of module pm1 State = 2 PID = 9253
ProcessMonitor[8634]: 12.769754 |0|0|0| D 18 CAL0000: statusControl: Set Process PrimProc of module pm1 State = 4 PID = 9253

この例では、ステータスコード2だったプロセス(PrimProc、PID=9253)が、ステータスコード4に遷移した事が読み取れます。

ところが、ステータスコード(数字)だけでは、それが何を意味しているのかがわかりません。
そこで、InfiniDBで定義している、各ステータスとステータスコードの一覧を以下に記載します。

上記の例では、PrimProcが”Manual initialization mode(手動による初期化)”のステータスから、”Active mode(アクティブモード)”に変わった事がわかります。
(上記の例は、InfiniDBを停止した状態から起動させた時のログの抜粋です。)

ステータスコード一覧

 
ステータスステータスコード意味
MAN_OFFLINE0Manual disable mode
AUTO_OFFLINE1Auto disable, due to a fault
MAN_INIT2Manual initialization mode
AUTO_INIT3Auto initialization mode
ACTIVE4Active mode
-5-
STANDBY6Hot Standby mode
FAILED7Failed restoral mode
UP8Up mode, for hardware devices
DOWN9Down mode, for hardware devices
COLD_STANDBY10Cold Standby mode
UNEQUIP11Unequipped mode
EQUIP12Equipped mode
DEGRADED13Degraded mode
MAN_DISABLED14Manual Disabled mode
AUTO_DISABLED15Auto Disabled mode
ENABLED16Enabled mode
INITIAL17Initial mode
STANDBY_INIT18Standby init
BUSY_INIT19Busy init
ROLLBACK_INIT20Rollback during DML init
STATE_MAX21Max value


用途

InfiniDBの各プロセスのカレント・ステータスは「calpontConsole getSystemInfo」コマンドで確認する事ができます。
しかし、過去に遡ってステータスの状態遷移を追跡する場合にはログファイルを読む必要があります。
ステータスコード(数字)の意味がわかる事で、InfiniDBの各プロセスがどのように遷移したかを理解する事ができます。

用途として、例えばプロセス監視を行っているシステムがあるとします。
そのシステムで、あるプロセスに障害が発生したとします。
このような場合、そのプロセスが「いつから」「どのように」ステータスが遷移したかを調査する事で、その時間帯にシステム内でどのような処理が行われていたか等の調査をするのに役立つ情報となります。

他の用途として、例えばInfiniDBのプロセスAが起動していないとプロセスBが起動できないといった、プロセス間の依存関係を知る事にも役立ちます。
これからInfiniDBを使い始めたいという方は、是非参考にしてみてください。

参考

InfiniDBの各種ログファイル