9.2.4. Transactional Object for Javaのライフサイクル
使用されていない永続オブジェクトはオブジェクトストアに属するステートを持ち、オンデマンドで有効化されるというパッシブなステートであると仮定されています。図9.2「TXOJ の永続オブジェクトの基本的なライフサイクル」を参照してください。
図9.2 TXOJ の永続オブジェクトの基本的なライフサイクル
- オブジェクトは最初はパッシブで、
OutputObjectStateクラスのインスタンスとしてオブジェクトストアに格納されます。 - アプリケーションが必要とする場合、オブジェクトは
read_committed操作を使いストアから読み込むことで自動的に有効化され、オブジェクトのrestore_state操作により、InputObjectStateインスタンスから完全なオブジェクトに変換されます。 - アプリケーションがオブジェクトを使い終わると、
save_state操作を使い、OutputObjectStateインスタンスに変換しなおすことで無効にし、write_uncommittedメソッドを利用しシャドーコピーとしてオブジェクトストアに格納しなおします。commit_state操作を利用して、このシャドーコピーをコミットし以前のバージョンを上書きすることができます。通常トランザクションシステムがシャドーコピーの存在をプログラマには見せないようにしています。本来、有効化されたオブジェクト内でトップレベルトランザクションがコミットする時にのみ、オブジェクトの無効化が起こります。
注記
永続オブジェクトが有効な間、パッシブからアクティブへ、またアクティブからパッシブへ何度も変化します。