10.2.2. オブジェクトストア


JBoss Transaction Service が提供するオブジェクトストアには制限のかなりあるインターフェースが存在するため、様々な方法で実装可能です。例えば、オブジェクトストアは、ローカルファイルシステムでも、リモートのデータベースでも、共有メモリでも常駐可能です。JBoss Transaction Service で提供されているオブジェクトストアに関する詳細情報は、添付資料にて確認できます。

注記

すべてのJBoss Transaction Service クラスについては、デフォルトのオブジェクトストアは pure Java 実装となっています。ネーティブのメソッドを使い共有メモリやより複雑な他のオブジェクトストア実装にアクセスする必要があります。
オブジェクトストアはすべて、InputObjectStateOutputObjectState クラスのインスタンスを保持、リトリーブします。これらのインスタンスは、それらが表すオブジェクトのUid とタイプにより名前が付けられます。read_committed メソッドを使い状態を読み取り、write_uncommitted メソッドを使いステートを書き込みます。通常、新規オブジェクトステートは、古いオブジェクトステートを上書きせず、シャドーコピーとしてストアに書き込まれます。commit_state メソッドが呼び出されたときにのみ、これらのシャドーは元のステートを置き換えます。オブジェクトストアとのやりとりはすべて、JBoss Transaction Service システムのコンポーネントにより適時実行され、オブジェクトのシャドーコピーの存在についてプログラマからは分からないようになっています。
public class ObjectStore
{
    public static final int OS_COMMITTED;
    public static final int OS_UNCOMMITTED;
    public static final int OS_COMMITTED_HIDDEN;
    public static final int OS_UNCOMMITTED_HIDDEN;
    public static final int OS_UNKNOWN;

    /* The abstract interface */
    public abstract boolean commit_state (Uid u, String name)
	throws ObjectStoreException;
    public abstract InputObjectState read_committed (Uid u, String name)
	throws ObjectStoreException;
    public abstract boolean write_uncommitted (Uid u, String name,
					       OutputObjectState os) throws ObjectStoreException;
    . . .
};
Copy to Clipboard Toggle word wrap
トランザクショナルオブジェクトのコミット中は、障害発生時にリカバリーし、ロールバックするか、そのままコミットするかできるように特定のステート変更を永続化する必要があります。Transactional Objects for Java を使用している場合、JBoss Transaction Service はこの永続性を自動管理します。ACID プロパティを確保するため、トランザクションのコミット前にこれらのステート変更は永続ストア実装にフラッシュされます。そうでなければ、アプリケーションは、システム障害が発生しやすいオペレーティングシステムのキャッシュにステートの変化が存在している可能性があるにも拘らず、トランザクションがコミットされているとみなします。デフォルトでは、JBoss Transaction Service はこのようなステートの変化をフラッシュします。結果、この動作によりアプリケーションのパフォーマンスに大きなペナルティを課す可能性があります。トランザクショナルオブジェクトのステートをフラッシュしないようにするには、com.arjuna.ats.arjuna.objectstore.objectStoreSync変数をOFFに設定します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat