- 締切済み
更新されたデータを定期的に抽出する処理のロジックは?
こんにちは。おせわになっております。 とあるファイル出力バッチをつくります。 バッチは1時間毎に起動し、前回のバッチ起動~今回バッチ起動の間に 画面の操作により更新された情報(差分データ)を抽出するのが要件です。 この場合の一般的なやり方を知りたく、投稿しました。 現在の案としては (1)バッチは、起動ごとに「バッチ起動開始日時」(DATE)を保持 (2)画面は、データを更新するときに「更新日時」を更新 (3)バッチは、以下の条件でデータを抽出 テーブルの「更新日時」>= 前回の「バッチ起動開始日時」 この場合の懸案は、絶妙のタイミングで画面操作とバッチ起動が競合した場合、 抽出からすり抜けてしまうデータがあるのではないか?ということです。 (a)画面は「更新日時」をUPDATE 2008/03/02 10:00:00 (b)バッチは「起動開始時間」を取得 2008/03/02 10:00:01 (c)画面は「更新日時」をCOMMIT (d)バッチは差分データ抽出の処理実行 (e)バッチは「起動開始時間」をUPDATE、COMMIT →次回のバッチ起動では、(a)のデータは抽出対象外になってしまう 上記を避けるための手段は何でしょうか? 比較を「分」レベルまでで行うことで回避可能な気がしているのですが、 他にスマートな方法がありましたらご教授ください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ezsan
- ベストアンサー率50% (1/2)
回答No.1
フィールドに区分を設定 データ更新時 区分→1 区分1のデータをバッジ処理 区分→0 以上