9.2. JBoss Transaction Service

オブジェクト指向の観点に従い、信頼のある分散アプリケーションを構築するのに必要な仕組みをオブジェクト指向の形式でプログラマに提示します。同時制御やステート管理などの仕組みは継承される必要があります。オブジェクト格納やトランザクションなどの仕組みは他のオブジェクトと同じように作成および操作されるJBoss Transaction Service オブジェクトとして実装されます。

注記

永続および同時制御機能を利用する場合、Transactional Objects for Java (TXOJ)クラスの利用を前提としています。ここでは他の仕組みについては触れません。
JBoss Transaction Service はオブジェクト指向の技術を使い、アプリケーションクラスを継承可能なJava クラスのツールキットをプログラマに提供し永続性や同時制御といった希望のプロパティを取得できるようになります。これらのクラスは階層を形成しますが、この階層の一部を本書にて詳しく説明し、例示しています。
JBoss Transaction Service のクラス階層

図9.1 JBoss Transaction Service のクラス階層

プログラマはトランザクションのスコープ指定およびオブジェクト内への適切なロック設定のみを行い、JBoss Transaction Service とTransactional Objects for Java (TXOJ) が適切なトランザクションへの登録、機能、また障害時のクラッシュリカバリを行います。

9.2.1. オブジェクトステートを保存

JBoss Transaction Serviceは、オブジェクトステートを記憶します。リカバリでは過去のオブジェクトステートを示し、永続性ではアプリケーション終了時のオブジェクトの最終ステートを指していますが、それぞれの情報を必要とします。これらの全要件は、 InputObjectState クラスや OutputObjectStateクラスといった同じ仕組みを使い実装されます。packunpack 操作を使って標準タイプのインスタンスを継続的にパックおよびアンパックできる内部アレイを、これらのクラスは保持します。このバッファは随時、自動的にサイズの調整がなされます。これらのインスタンスは、ネットワークバイトオーダーと呼ばれる機械から独立した標準形式にてすべてバッファに格納されます。XDRやASN.1などアーキテクチャーに依存しない別の形式を実装するには、これらのクラスをパックおよびアンパック機能に相当するクラス (必要とされる形式) で置き換えます。