- PR -

ロールバックの考え方

1
投稿者投稿内容
VB初心者
常連さん
会議室デビュー日: 2008/09/29
投稿数: 20
投稿日時: 2008-10-01 15:26
VB2005、Oracle共に初心者です。

現在、無線端末からの通信により、Oracleのテーブルを参照、更新
するアプリの開発を行っております。
PC側アプリは端末との送受信、及び受信した要求に対するOracle
テーブルの参照、更新を行います。
基本的な流れは、

端末からの検索要求→検索要求を判定し、テーブルを参照→参照結果を
端末へ送信→結果に対する端末からの更新要求→更新要求を判定し、
テーブルを更新→更新結果を端末へ送信
となります。

また、通信制御、及びOracleテーブルの検索、更新、追加、削除は、全て
独立したンクションとなっております。
PCから無線端末への結果送信時に、通信エラーが発生した場合、端末側
でもエラーとなり、PCへの要求を再送信する仕様になります。
従って、PC側ではエラー発生時にロールバックを行う必要があるのですが、
複数台(9台)の無線端末での運用となり、また通信エラーを判定しての
ロールバック処理を考えているので、どの時点にセーブポイントをおいて
ロールバックさせれば良いのか、うまく纏まりません。
何かアドバイスを頂ければ幸いかと思いますので、よろしくお願いします。
ちなみに、PC側アプリは1本で、VB2005から可能になったのマルチ
スレッドでの制御を考えてます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-10-01 22:52
 図を描いてみましょう。考えを整理するのに、文字だけで考えていてはいけません。図に描いてみましょう。

コード:
     端末     ホスト
      |         |
時    |-------->|検索要求
間    |         |検索
↓    |<--------|検索結果
      |-------->|更新要求
      |         |判定
      |         |更新
      |<--------|更新結果送信
      |         |


 これが書かれている内容から読み取ったシーケンス。
ここに、仕様にあわせて、スレッドやアプリケーションの生存期間を描き加えていきます。
(端末は、とりあえず1台にしておきましょう。)
1

スキルアップ/キャリアアップ(JOB@IT)