この章では、レコードをストアに格納する2つの異なる書込み操作と削除について説明します。
ストアへの書込み操作を行う場合、対処する必要のある例外が3つあります。デフォルト・ポリシーを使用する単純なケースでは、これらを明示的に処理する必要がないこともあります。ただし、コードの複雑度が増すと、これらの例外を明示的に管理する必要性も増します。
1つ目は、DurabilityException
です。この例外は、永続性ポリシーが満たされないため、操作を完了できないことを表します。詳細は、「永続性保証」を参照してください。
2つ目はRequestTimeoutException
です。これは、ストアのタイムアウト・プロパティで指定された時間内に操作を完了できなかったことを単に示しています。これは、システムに負荷がかかりすぎていることを示している可能性があります。ネットワーク速度の低下や、短時間で多くの操作(特に書込み操作)が行われてストアのノードに負荷がかかっていることが考えられます。
RequestTimeoutException
に対処するには、単にエラーを記録して続行するか、少しの間待ってから操作を再試行します。タイムアウト値を大きくして操作を再試行することもできます。(特定の操作のタイムアウト値を指定できるKVStore.put()
メソッドがあります。)
最後に、永続性の問題やリクエスト・タイムアウトの問題以外でなんらかの例外が発生したことを表す一般的なFaultException
を受け取ることがあります。この対処法は、エラーを記録して続行するか、操作を再試行することのみです。