10.2. ステート管理


10.2.1. オブジェクトステート

JBoss Transaction Serviceは、リカバリや永続化できるようにオブジェクトステートを記憶します。リカバリの場合、ステートは過去のオブジェクトステートを指し、永続性の場合、ステートはアプリケーション終了時の最終的なオブジェクトステートを指します。リカバリや永続化には共通の機能が含まれているため、両方ともInput/OutputObjectState および Input/OutputBufferクラスを使い実装されます。
例10.2「InputBuffer」InputBuffer クラスと例10.1「OutputBuffer の例」OutputBufferクラスにて、pack (unpack) 操作を使い、標準Java タイプのインスタンスを連続的にパック (アンパック) できる内部アレイを維持します。このバッファは必要であれば自動的にサイズの調整がなされます。インスタンスはすべて、バッファ内にネットワークバイトオーダー (network byte order)と呼ばれる標準形式で格納され、マシンに依存しないようにします。

例10.1 OutputBuffer の例

public class OutputBuffer
{
    public OutputBuffer ();

    public final synchronized boolean valid ();
    public synchronized byte[] buffer();
    public synchronized int length ();

    /* pack operations for standard Java types */

    public synchronized void packByte (byte b) throws IOException;
    public synchronized void packBytes (byte[] b) throws IOException;
    public synchronized void packBoolean (boolean b) throws IOException;
    public synchronized void packChar (char c) throws IOException;
    public synchronized void packShort (short s) throws IOException;
    public synchronized void packInt (int i) throws IOException;
    public synchronized void packLong (long l) throws IOException;
    public synchronized void packFloat (float f) throws IOException;
    public synchronized void packDouble (double d) throws IOException;
    public synchronized void packString (String s) throws IOException;
};
Copy to Clipboard Toggle word wrap

例10.2 InputBuffer

public class InputBuffer
{
    public InputBuffer ();

    public final synchronized boolean valid ();
    public synchronized byte[] buffer();
    public synchronized int length ();

    /* unpack operations for standard Java types */

    public synchronized byte unpackByte () throws IOException;
    public synchronized byte[] unpackBytes () throws IOException;
    public synchronized boolean unpackBoolean () throws IOException;
    public synchronized char unpackChar () throws IOException;
    public synchronized short unpackShort () throws IOException;
    public synchronized int unpackInt () throws IOException;
    public synchronized long unpackLong () throws IOException;
    public synchronized float unpackFloat () throws IOException;
    public synchronized double unpackDouble () throws IOException;
    public synchronized String unpackString () throws IOException;
};
Copy to Clipboard Toggle word wrap

例10.3 OutputObjectState

class OutputObjectState extends OutputBuffer
{
    public OutputObjectState (Uid newUid, String typeName);

    public boolean notempty ();
    public int size ();
    public Uidpublic class InputBuffer
    {
	public InputBuffer ();

	public final synchronized boolean valid ();
	public synchronized byte[] buffer();
	public synchronized int length ();

	/* unpack operations for standard Java types */

	public synchronized byte unpackByte () throws IOException;
	public synchronized byte[] unpackBytes () throws IOException;
	public synchronized boolean unpackBoolean () throws IOException;
	public synchronized char unpackChar () throws IOException;
	public synchronized short unpackShort () throws IOException;
	public synchronized int unpackInt () throws IOException;
	public synchronized long unpackLong () throws IOException;
	public synchronized float unpackFloat () throws IOException;
	public synchronized double unpackDouble () throws IOException;
	public synchronized String unpackString () throws IOException;
    };
Copy to Clipboard Toggle word wrap

例10.4 InputObjectState

class InputObjectState extends InputBuffer
{
    public InputObjectState (Uid newUid, String typeName, byte[] b);

    public boolean notempty ();
    public int size ();
    public Uid stateUid ();
    public String type ();
};
Copy to Clipboard Toggle word wrap
例10.4「InputObjectState」 および 例10.3「OutputObjectState」クラスは、継承を使いInputBufferOutputBufferクラスの全機能を提供します。また、これらのクラスにより、インスタンス変数を2つ追加しますが、これらの変数はInputObjectState あるいは OutputObjectState インスタンスが圧縮イメージとなっているオブジェクトのUid およびタイプを表します。オブジェクトステートを格納あるいはリトリーブするときにオブジェクトストアにアクセスする場合はこれらを使います。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat