「トランザクション」である必要がある実行する必要があるいくつかのメソッド呼び出しがありますが、try/catch/finally 以外にこれを実装する方法がわかりません。
バックグラウンド
- アプリケーションはコンソール ベースです。
- アプリケーションには複数のスレッドがあります
- データベースに接続情報を照会し、Web サービスに接続してログインし、セッション ID を生成してデータベースを更新します。
- 操作によってログアウトが呼び出され、データベースをクリーンアップし、セッション ID をクリアして、Web サービスからログアウトする必要があります。
私が理解しようとしていること
ログアウトが要求されたときに、プロセス全体がすべて成功するか、まったく成功しないかを確認したいと考えています。たとえば、データベースをクリーンアップしたくない場合、セッション ID がクリーンアップされ、ログアウト操作が失敗します (したがって、ログインは引き続き有効です)。
理想的には、ソリューションは障害時に「ロールバック」し、それによって以前の状態が維持されるようにします。
これを達成するための巧妙な方法はありますか、またはこれを行うために一連の入れ子になった try/catch/finally ブロックで立ち往生していますか?