第5章 表の行の書込みと削除

目次

書込みの例外
ストア内の表への行の書込み
子表への行の書込み
その他の格納操作
ストアからの行の削除
multiDelete()の使用

この章では、行をストアに格納する2つの異なる書込み操作と削除について説明します。

書込みの例外

ストアへの書込み操作を行う場合、対処する必要のある例外が4つあります。デフォルト・ポリシーを使用する単純なケースでは、これらを明示的に処理する必要がないこともあります。ただし、コードの複雑度が増すと、これらの例外を明示的に管理する必要性も増します。

1つ目は、DurabilityExceptionです。この例外は、永続性ポリシーが満たされないため、操作を完了できないことを表します。詳細は、「永続性保証」を参照してください。

2つ目はRequestTimeoutExceptionです。これは、ストアのタイムアウト・プロパティで指定された時間内に操作を完了できなかったことを単に示しています。これは、システムに負荷がかかりすぎていることを示している可能性があります。ネットワーク速度の低下や、短時間で多くの操作(特に書込み操作)が行われてストアのノードに負荷がかかっていることが考えられます。

RequestTimeoutExceptionに対処するには、単にエラーを記録して続行するか、少しの間待ってから操作を再試行します。タイムアウト値を大きくして操作を再試行することもできます。(特定の操作のタイムアウト値を指定できるTableAPI.put()メソッドがあります。)

IllegalArgumentExceptionを受け取ることもできます。これは、ストアに書き込んでいるRowに主キーがない、または行が無効な場合にスローされます。

最後に、永続性の問題やリクエスト・タイムアウトの問題以外でなんらかの例外が発生したことを表す一般的なFaultExceptionを受け取ることがあります。この対処法は、エラーを記録して続行するか、操作を再試行することのみです。