Tablestore Java SDK は、例外をスローしてエラーを処理します。このトピックでは、エラー処理の方法、例外の詳細、および再試行ポリシーについて説明します。
処理方法
API 呼び出しで例外がスローされない場合、その操作は成功です。例外がスローされた場合は、操作は失敗です。
BatchGetRow や BatchWriteRow などのバッチ操作の場合は、例外を確認し、各行のステータスを検証する必要があります。すべての行が正常に処理された場合にのみ、API 呼び出しが成功したと見なされます。
例外
Tablestore Java SDK には、ClientException と TableStoreException の 2 種類の例外があり、どちらも RuntimeException を継承しています。
ClientException:SDK 内部の例外です。パラメーターの設定が正しくない場合などに発生します。-
TableStoreException:サーバーからのエラーメッセージを解析して生成される、サーバー側エラーです。TableStoreExceptionオブジェクトには、次のメンバーが含まれます。getHttpStatus():200 や 404 などの HTTP ステータスコードです。getErrorCode():Tablestore から返されるエラーコード文字列です。getRequestId():リクエストを一意に識別する UUID です。問題を解決できない場合は、このリクエスト ID を記録し、チケットを送信してください。
再試行
SDK は、エラーが発生した場合、操作を自動的に再試行します。デフォルトでは、SDK は、スロットリングエラーまたはサーバー側内部エラーによって失敗した読み取り操作のみを再試行します。デフォルトの再試行ポリシーの最大再試行期間は 10 秒です。
RetryStrategyクラスを継承することでカスタムの再試行ポリシーを実装し、OTSClientオブジェクトを構築する際にカスタムポリシーをパラメーターとして渡すことができます。
SDK には、次の再試行ポリシーが実装されています:
DefaultRetryStrategy:デフォルトの再試行ポリシーです。読み取り操作のみを再試行します。再試行間隔は 10 ミリ秒から指数関数的に増加し、最大再試行期間は 10 秒です。AlwaysRetryStrategy:すべてのタイプのリクエストを最大 3 回まで再試行します。再試行間隔は 4 ミリ秒から指数関数的に増加し、最大間隔は 1 秒です。