はじめに
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
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_OFFLINE | 0 | Manual disable mode |
AUTO_OFFLINE | 1 | Auto disable, due to a fault |
MAN_INIT | 2 | Manual initialization mode |
AUTO_INIT | 3 | Auto initialization mode |
ACTIVE | 4 | Active mode |
- | 5 | - |
STANDBY | 6 | Hot Standby mode |
FAILED | 7 | Failed restoral mode |
UP | 8 | Up mode, for hardware devices |
DOWN | 9 | Down mode, for hardware devices |
COLD_STANDBY | 10 | Cold Standby mode |
UNEQUIP | 11 | Unequipped mode |
EQUIP | 12 | Equipped mode |
DEGRADED | 13 | Degraded mode |
MAN_DISABLED | 14 | Manual Disabled mode |
AUTO_DISABLED | 15 | Auto Disabled mode |
ENABLED | 16 | Enabled mode |
INITIAL | 17 | Initial mode |
STANDBY_INIT | 18 | Standby init |
BUSY_INIT | 19 | Busy init |
ROLLBACK_INIT | 20 | Rollback during DML init |
STATE_MAX | 21 | Max value |
用途
InfiniDBの各プロセスのカレント・ステータスは「calpontConsole getSystemInfo」コマンドで確認する事ができます。しかし、過去に遡ってステータスの状態遷移を追跡する場合にはログファイルを読む必要があります。
ステータスコード(数字)の意味がわかる事で、InfiniDBの各プロセスがどのように遷移したかを理解する事ができます。
用途として、例えばプロセス監視を行っているシステムがあるとします。
そのシステムで、あるプロセスに障害が発生したとします。
このような場合、そのプロセスが「いつから」「どのように」ステータスが遷移したかを調査する事で、その時間帯にシステム内でどのような処理が行われていたか等の調査をするのに役立つ情報となります。
他の用途として、例えばInfiniDBのプロセスAが起動していないとプロセスBが起動できないといった、プロセス間の依存関係を知る事にも役立ちます。
これからInfiniDBを使い始めたいという方は、是非参考にしてみてください。
参考
InfiniDBの各種ログファイル