9.2.4. Transactional Object for Javaのライフサイクル

使用されていない永続オブジェクトはオブジェクトストアに属するステートを持ち、オンデマンドで有効化されるというパッシブなステートであると仮定されています。図9.2「TXOJ の永続オブジェクトの基本的なライフサイクル」を参照してください。
TXOJ の永続オブジェクトの基本的なライフサイクル

図9.2 TXOJ の永続オブジェクトの基本的なライフサイクル

  • オブジェクトは最初はパッシブで、OutputObjectStateクラスのインスタンスとしてオブジェクトストアに格納されます。
  • アプリケーションが必要とする場合、オブジェクトはread_committed 操作を使いストアから読み込むことで自動的に有効化され、オブジェクトのrestore_state 操作により、InputObjectState インスタンスから完全なオブジェクトに変換されます。
  • アプリケーションがオブジェクトを使い終わると、save_state 操作を使い、OutputObjectState インスタンスに変換しなおすことで無効にし、write_uncommitted メソッドを利用しシャドーコピーとしてオブジェクトストアに格納しなおします。commit_state 操作を利用して、このシャドーコピーをコミットし以前のバージョンを上書きすることができます。通常トランザクションシステムがシャドーコピーの存在をプログラマには見せないようにしています。本来、有効化されたオブジェクト内でトップレベルトランザクションがコミットする時にのみ、オブジェクトの無効化が起こります。

注記

永続オブジェクトが有効な間、パッシブからアクティブへ、またアクティブからパッシブへ何度も変化します。