「ソフト」トランザクションとは、一部の DB での永続性を含まず、論理オブジェクトの変更だけを意味します。これが話です。
プレーンな Java アプリケーション、フレームワークなし、おそらく多くのスレッド。
- オブジェクトObは、別のスレッドでdoSomething()を開始します。doSomething() 内で、このオブジェクトのメンバーと (おそらく) 他のオブジェクトが変更されます。
- Ob のスレッドが何らかのイベント ハンドラによって中断されました。誰かが Ob にdoSomething()の代わりに doSomethingElse() を求めている!
- Ob は doSomething() を完了し、スレッドが中断されたかどうかを確認します。はいの場合、私は彼に次のことをお願いします:
a) 完全に元に戻す (ロールバック) doSomething()、
b) doSomethingElse()
doSomething() で行われた特定の変更を追跡する必要はありません。また、オブジェクトごとにさまざまな doSomething メソッドを使用できるためです。私は特定のフレームワークを使用しておらず、「軽量」に保ちたいと思っています。
そのような動作を達成する方法はありますか?
よろしくお願いします!