リトライ
※OLTP=オンライントランザクションシステム(多数の端末から中央のデータベースにアクセスするタイプのシステム)
デメリット
リトライが繰り返し発生することによる負荷の増大。サーバー再起動以外で切り抜けられないことが多い。
対策
- リトライ回数の上限設定
- 負荷の考慮
- タイムアウト制限時間の考慮
バッチ分割
デメリット
トランザクションが長すぎて、最後のほうでエラーになる。バッチが途中でエラーになったが中途半端にデータが更新されてしまっている。
対策
- 処理分割をきっちり行う
- 例外に対する認識を常に持っておく
- バッチの適切な分割(基本的にはワントランザクションで対処したほうがいいが、長すぎるのも危険)。
- 不用意なautocommitをしない
- リソースの監視
- 再実行のことを考えた分割にしておく
バッチ再利用不可
デメリット
エラーが発生しても失敗したところから再実行できない。バッチ中に初期化やクリアの処理が入っていない
対策
- 例外に対する認識を必ず持っておく
- 処理が正常に進んでいるか否か、プロセス的なログ、テーブルの用意
- 適切な分割