エラーコード体系
各API でエラーコードは以下の形式をもつint 値である:
format
0 1 2 3 4(octet)
+-------+-------+-------+-------+
| 予約(0 fill) | Level | Type |
+-------+-------+-------+-------+
|<--------- Error Code -------->|
Level はエラーの深刻度を示し、Type はエラーの具体的な種別を分類するために利用する。
エラー回復処理ではほとんどの場合、Level のみに注目する。
Type はログ出力やデバッグなどの目的に利用することができる。
エラーコードから、レベルおよびタイプを抜き出す際には以下のマクロを利用する。
-
ARMS_ERR_LVL(code)
-
ARMS_ERR_TYPE(code)
レベル一覧
- ARMS_ELVL_LOW
- リトライで短時間での回復が期待できる
- ARMS_ELVL_MID
- リトライにより回復が期待できるが、時間がかかる
- ARMS_ELVL_HIGH
- リトライによる回復は期待できない
- ARMS_ELVL_FATAL
- ライブラリを停止すべき
エラーコード一覧
- ARMS_EFATAL
- ライブラリ内部で致命的エラーが発生した
- ARMS_ETIMEOUT
- タイムアウトが発生した
- ARMS_EMAXRETRY
- 再送回数が上限に到達した
- ARMS_EDONTRETRY
- サーバから再送禁止を指示された
- ARMS_ECALLBACK
- コールバック関数でエラーが発生した
- ARMS_ESYSTEM
- メモリ不足など、動作環境が原因のエラーが発生した
- ARMS_EMODSYNC
- モジュールの同期が必要な状態となった
- ARMS_EAPPEXEC
- コマンド実行エラーが発生した
- ARMS_EINVAL
- 不正な引数を指定された
- ARMS_ESIZEL
- 引数で指定されたバッファにサイズの異常を検知した
ログコード体系
INFO-API でやりとりするログコードは以下の形式をもつint 値である:
format
0 1 2 3 4(octet)
+-------+-------+-------+-------+
|予約(0)|old_st |new_st | Type |
+-------+-------+-------+-------+
|<---------- Log Code --------->|
old_st およびnew_st はライブラリの状態遷移にともなうログメッセージで利用する。
old_st は今までの状態で、new_st は新しく遷移した状態である。
状態遷移が発生しなかった場合や、自己遷移が発生した場合には両方が0 となる。
Type はログの種別を意味する。
ログコードから、状態およびタイプを抜き出す際には以下のマクロを利用する。
-
ARMS_LOG_OLD_ST(code)
-
ARMS_LOG_NEW_ST(code)
-
ARMS_LOG_TYPE(code)
状態一覧
- ARMS_ST_INITIAL
- 起動直後
- ARMS_ST_LSPULL
- LS へアクセス中
- ARMS_ST_RSPULL
- RS へアクセス中
- ARMS_ST_PULLDONE
- PULL 動作終了(成功)
- ARMS_ST_BOOT_FAIL
- PULL 動作終了(失敗)
- ARMS_ST_PUSH_INITIAL
- Push 待ち受け処理開始直後
- ARMS_ST_PUSH_SENDREADY
- RS へPush 可能になったことを通知
- ARMS_ST_PUSH_WAIT
- Push 待ち受け可能
- ARMS_ST_PUSH_REBOOT
- RS からreboot を指示された
ログコード一覧
- ARMS_LOG_EFALLBACK
- 異常を検知し、一つ前の状態へ戻った
- ARMS_LOG_ILS_ACCESS_START
- LSへのアクセスを開始した
- ARMS_LOG_ILS_ACCESS_END
- LSへのアクセスが正常に終了した
- ARMS_LOG_ELS_ACCESS_FAIL
- LSへのアクセスに失敗した
- ARMS_LOG_IRS_ACCESS_START
- RSへのアクセスを開始した
- ARMS_LOG_IRS_ACCESS_END
- RSへのアクセスが正常に終了した
- ARMS_LOG_ERS_ACCESS_FAIL
- RSへのアクセスに失敗した
- ARMS_LOG_ILINE_CONNECTED
- 回線の接続が完了した
- ARMS_LOG_ELINE_AUTH_FAIL
- 回線接続処理中に認証エラーが発生
- ARMS_LOG_ELINE_TIMEOUT
- 回線接続処理中にタイムアウトが発生
- ARMS_LOG_ILINE_DISCONNECTED
- 回線の切断が完了した
- ARMS_LOG_IHTTP_CONNECT_START
- コンフィグの取得を開始した
- ARMS_LOG_IHTTP_CONNECT_END
- コンフィグの取得が正常に終了した
- ARMS_LOG_IHTTP_LISTEN_START
- PUSH待ち受けを開始した
- ARMS_LOG_IHTTP_ACCEPT
- PUSHリクエストを受け付けた
- ARMS_LOG_IHTTP_CLOSE
- PUSH処理が終了した
- ARMS_LOG_IHTTP_RETRY
- リトライ処理を開始した
- ARMS_LOG_EURL
- 不正なURLを指定された
- ARMS_LOG_EHOST
- 不正なホストを指定された
- ARMS_LOG_ESOCKET
- ソケットへの読み書きに失敗した
- ARMS_LOG_ECONNECT
- IP/TCP/SSL いずれかのレベルで接続に失敗した
- ARMS_LOG_EHTTP
- HTTPのレベルで接続に失敗した
- ARMS_LOG_ECERTIFICATE
- サーバ証明書の検証に失敗した
- ARMS_LOG_ENETNOMEM
- ネットワーク処理でメモリ不足を検出
- ARMS_LOG_ENETTIMEOUT
- 通信中にタイムアウトが発生した
- ARMS_LOG_ECALLBACK
- コールバック関数の呼び出しでエラーを検出した
- ARMS_LOG_ESSL
- OpenSSLライブラリ内でエラーを検出
- ARMS_LOG_EROLLBACK
- ロールバック処理に失敗した
- ARMS_LOG_ERETRY
- リトライ回数の上限に達した
- ARMS_LOG_INFO
- 汎用の通常レベルのログ
- ARMS_LOG_ERROR
- 汎用のエラーレベルのログ
- ARMS_LOG_DEBUG
- より詳細なログ