ObjectGrid インターフェース

以下のメソッドを使用して ObjectGrid インスタンスと対話することができます。

作成と初期化

ObjectGrid インスタンスの作成に必要なステップについては、ObjectGridManager インターフェースのトピックを参照してください。ObjectGrid インスタンスを作成する方法には、プログラマチックな方法と XML 構成ファイルを使用した 2 つの別の方法があります。 詳しくは、ObjectGridManager インターフェースを参照してください。

get メソッドまたは set メソッドとファクトリー・メソッド

どの set メソッドも、ObjectGrid インスタンスを初期化する前に呼び出す必要があります。初期設定メソッドを 呼び出した後に set メソッドを呼び出すと、java.lang.IllegalStateException 例外 が発生します。ObjectGrid インターフェースの各 getSession メソッドでも初期設定メソッドが暗黙的に呼び出されます。 このため、いずれの getSession メソッドを呼び出す前にも、set メソッドを呼び出す必要があります。ただし、ObjectGridEventListener オブジェクトの設定、追加、および除去の場合のみは、このルールの例外となります。 これらのオブジェクトは、初期化処理が完了した後に処理することができます。

ObjectGrid インターフェースには以下の主要メソッドが含まれています。
表 1. ObjectGrid インターフェース. ObjectGrid の主要なメソッドです。
メソッド 説明

BackingMap defineMap(String name);

defineMap: 一意的に名付けた BackingMap を定義するファクトリー・メソッドです。バッキング・マップの詳細情報については、『BackingMap インターフェース』を参照してください。

BackingMap getMap(String name);

getMap: defineMap を呼び出して、以前に定義された BackingMap を戻します。 このメソッドを使用すると、XML 構成でまだ構成されていない場合に BackingMap を構成することができます。

BackingMap createMap(String name);

createMap: BackingMap を作成しますが、この ObjectGrid での使用のために BackingMap をキャッシュすることはありません。このメソッドは、 この ObjectGrid での使用のために BackingMap をキャッシュに入れる、 ObjectGrid インターフェースの setMaps(List) メソッドと共に使用してください。これらのメソッドは、Spring Framework を使用して ObjectGrid を構成する場合に使用します。

void setMaps(List mapList);

setMaps: 以前この ObjectGrid で定義されたすべての BackingMap をクリアし、提供されている BackingMap のリストに置き換えます。

public Session getSession() throws ObjectGridException, TransactionCallbackException;

getSession: セッションを戻します。このセッションは、作業単位の開始、コミット、ロールバックの機能を 提供します。Session オブジェクトに関する詳細情報については、『Session インターフェース』を参照してください。

Session getSession(CredentialGenerator cg);

getSession(CredentialGenerator cg): CredentialGenerator オブジェクトを使用してセッションを取得します。 このメソッドは、クライアント/サーバー環境の ObjectGrid クライアントによってのみ呼び出すことができます。

Session getSession(Subject subject);

getSession(Subject subject): Session を取得するために、ObjectGrid で構成されている Subject オブジェクトではなく、特定の Subject オブジェクトの使用を許可します。

void initialize() throws ObjectGridException;

initialize: ObjectGrid は初期化され、汎用可能です。 このメソッドは、ObjectGrid が初期化済み状態にない場合、getSession メソッドが呼び出されると暗黙的に呼び出されます。

void destroy();

destroy: このメソッドが呼び出された後は、フレームワークは分解されて使用できません。

void setTxTimeout(int timeout);

setTxTimeout: この ObjectGrid インスタンスが作成した Session によって開始されたトランザクションに許可されている完了までの時間 (秒単位) を設定する場合にこのメソッドを使用します。 指定された時間内にトランザクションが完了しなかった場合は、トランザクションを開始した Session が「タイムアウト」としてマーキングされます。 Session がタイムアウトとしてマークされると、タイムアウトになった Session によって起動される次の ObjectMap メソッドで、 com.ibm.websphere.objectgrid. TransactionTimeoutException 例外が発生します。Session が「ロールバックのみ」としてマークされると、TransactionTimeoutException 例外がアプリケーションによってキャッチされた後に、 アプリケーションがロールバック・メソッドではなくコミット・メソッドを呼び出した場合でも、トランザクションはロールバックされます。 タイムアウト値 0 は、トランザクションの完了までに許可される時間が無制限であることを示します。 タイムアウト値 0 が使用されると、トランザクションはタイムアウトになりません。このメソッドが呼び出されない場合、このインターフェースの getSession メソッドによって返されるすべての Session のトランザクション・タイムアウト値は、デフォルトで 0 に設定されます。 アプリケーションは、com.ibm.websphere.objectgrid.Session インターフェースの setTransactionTimeout メソッドを使用して、Session ごとにトランザクション・タイムアウト設定をオーバーライドできます。

分散の場合は、objectGrid.xml ファイルでトランザクション・タイムアウトを 構成することもできます。

int getTxTimeout();

getTxTimeout: トランザクション・タイムアウト値 (秒単位) を返します。このメソッドは、setTxTimeout メソッドのタイムアウト・パラメーターとして渡されるものと同じ値を返します。 setTxTimeout メソッドが呼び出されなかった場合、このメソッドは 0 を返し、トランザクションの完了までに許可されている時間が無制限であることを示します。

public int getObjectGridType();

ObjectGrid のタイプを返します。戻り値は、このインターフェースで宣言された定数 LOCAL、SERVER、または CLIENT のうちの 1 つに相当します。

public void registerEntities(Class[] entities);

クラス・メタデータに基づいた 1 つ以上のエンティティーを登録します。エンティティー登録は、BackingMap および他の定義された索引とエンティティーを結合するため、ObjectGrid の初期化の前に必要になります。このメソッドは、複数回呼び出すことができます。

public void registerEntities(URL entityXML);

エンティティー XML ファイルで 1 つ以上のエンティティーを登録します。エンティティー登録は、BackingMap および他の定義された索引とエンティティーを結合するため、ObjectGrid の初期化の前に必要になります。このメソッドは、複数回呼び出すことができます。

void setQueryConfig(QueryConfig queryConfig);

この ObjectGrid の QueryConfig オブジェクトを設定します。QueryConfig オブジェクトにより、この ObjectGrid のマップ間でオブジェクト照会を実行している照会構成が提供されます。

 

   

//Security

void setSecurityEnabled()

setSecurityEnabled: セキュリティーを使用可能にします。 セキュリティーは、デフォルトでは使用不可です。

void setPermissionCheckPeriod(long period);

setPermissionCheckPeriod: このメソッドは、アクセス権を検査する頻度を示す単一パラメーターを持ちます。アクセス権は、 クライアント・アクセスの許可に使用されます。パラメーターが 0 である場合、すべてのメソッドは、 許可機構 (JAAS 許可、カスタム許可のどちらか) に問い合わせて、現行サブジェクトがアクセス権を持っているかどうかを確認します。 この方法は、許可の実装に依存するので、 パフォーマンスに問題を生じる可能性があります。 しかし、このタイプの許可は、必要に応じて有効です。 あるいは、パラメーターが 0 未満である場合は、許可機構に戻して更新を行うまでに、アクセス権のセットをキャッシュに入れておく ミリ秒数を示しています。このパラメーターはパフォーマンスをかなり向上させますが、 その間にバックエンド・アクセス権が変更されると、 バックエンドのセキュリティー・プロバイダーが変更されていても、 ObjectGrid はアクセスを許可されたり、防止されたりします。

void setAuthorizationMechanism(int authMechanism);

setAuthorizationMechanism: 許可機構を設定します。 デフォルトは SecurityConstants.JAAS_AUTHORIZATION です。

   

setSubjectSource(SubjectSource ss);

setSubjectSource: SubjectSource プラグインを設定します。 このプラグインを使用すると、ObjectGrid クライアントを表す Subject オブジェクトを取得できます。 このサブジェクトは、ObjectGrid 許可に使用されます。ObjectGrid.getSession メソッドを使用してセッションを取得するとき、セキュリティーが有効になっている場合は、ObjectGrid ランタイムによって SubjectSource.getSubject メソッドが呼び出されます。 このプラグインは、既に認証済みのクライアントの場合に役立ちます。 つまり、このプラグインは、認証済み Subject オブジェクトを検索して、ObjectGrid インスタンスに渡すことができます。 他の認証は必要ありません。

setSubjectValidation(SubjectValidation sv);

setSubjectValidation: この ObjectGrid インスタンスに対する SubjectValidation プラグインを設定します。このプラグインを使用すると、ObjectGrid に渡される javax.security.auth.Subject サブジェクトが、 改ざんされていない有効なサブジェクトであるかどうかを検証できます。 Subject オブジェクトが改ざんされたかどうかは作成者のみが知っているため、このプラグインの実装には、Subject オブジェクト作成者からのサポートが必要です。 ただし、サブジェクト作成者が、Subject が改ざんされたかどうかを関知していない場合もあります。 この場合、このプラグインは使用しないようにしてください。

void setObjectGridAuthorization(ObjectGridAuthorization ogAuthorization);

この ObjectGrid インスタンスに対する ObjectGridAuthorization を設定します。 このメソッドに NULL を引き渡して、このメソッドの初期の呼び出しから以前の set ObjectGridAuthorization オブジェクトを除去し、この <code>ObjectGrid</code> が ObjectGridAuthorization オブジェクトに関連付けられていないことを示します。このメソッドは、ObjectGrid セキュリティーが有効な場合にのみ使用できます。ObjectGrid セキュリティーが無効な場合は、提供された ObjectGridAuthorization は使用できません。ObjectGridAuthorization プラグインは、ObjectGrid およびマップへのアクセスを許可するのに使用されます。

ObjectGrid インターフェース: プラグイン

ObjectGrid インターフェース には、対話をさらに拡張可能にするための、オプションのプラグイン・ポイントが いくつかあります。

void addEventListener(ObjectGridEventListener cb);
void setEventListeners(List cbList);
void removeEventListener(ObjectGridEventListener cb);
void setTransactionCallback(TransactionCallback callback);
int reserveSlot(String);
// Security related plug-ins
void setSubjectValidation(SubjectValidation subjectValidation);
void setSubjectSource(SubjectSource source);
  • ObjectGridEventListener: ObjectGridEventListener インターフェースは、ObjectGrid で重大なイベントが発生したときに通知を受け取るために使用します。 これらのイベントには、ObjectGrid の初期化、トランザクションの開始、トランザクションの終了、および ObjectGrid の破棄などがあります。 これらのイベントを listen するには、 ObjectGridEventListener インターフェースを実装する クラスを作成して、ObjectGrid に追加します。 これらのリスナーは、各 Session に関連付けられています。 詳細情報については、『リスナーおよび Session インターフェース』を参照してください。
  • TransactionCallback: TransactionCallback リスナー・インターフェースを使用すると、開始、コミット、およびロールバック・シグナルなどの トランザクション・イベントは、このインターフェースを送信することができます。 一般に、TransactionCallback リスナー・インターフェースは、 ローダーと併用されます。 詳細情報については、『TransactionCallback プラグインおよびローダー』を参照してください。これらのイベントは、外部リソースと一緒に、 または複数のローダー内で、トランザクションを調整する目的で使用できます。
  • reserveSlot: この ObjectGrid のプラグインが、TxID のようなスロットを持つオブジェクト・インスタンスでの使用のためにスロットを予約できるようにします。
  • SubjectValidation: セキュリティーが有効である場合、 このプラグインは、ObjectGrid に渡される javax.security.auth.Subject クラスの妥当性検査に使用できます。
  • SubjectSource: セキュリティーが有効である場合、このプラグインは、ObjectGrid クライアントを表す サブジェクト・オブジェクトを取得する目的で使用できます。 そうすると、このサブジェクトは ObjectGrid 許可に使用されます。

プラグインについて詳しくは、プラグインの概要を参照してください。