BackingMapLifecycleListener プラグインは、バックアップ・マップの WebSphere® eXtreme Scale ライフサイクル状態変更イベントの通知を受け取ります。
BackingMapLifecycleListener プラグインは、バックアップ・マップのそれぞれの状態変更について BackingMapLifecycleListener.State オブジェクトを含んだイベントを受け取ります。 BackingMapLifecycleListener インターフェースも実装する BackingMap プラグインは、このプラグインが登録されている BackingMap インスタンスのリスナーとして自動的に追加されます。
BackingMapLifecycleListener プラグインは、既存の BackingMap プラグインが関連したプラグインの中のアクティビティーに関係するアクティビティーを実行する必要がある場合に役立ちます。例として、Loader プラグインは、協力する MapIndexPlugin または DataSerializer プラグインから構成を取得する必要が生じる場合もあります。
BackingMapLifecycleListener インターフェースを実装し、BackingMapLifecycleListener.State.INITIALIZED イベントを検出することで、ローダーは、BackingMap インスタンス内の他のプラグインの状態について知ることができます。BackingMap が INITIALIZED 状態にある、つまり、他のプラグインがそれの initialize() メソッドを呼び出し済みであるため、ローダーは、協力する MapIndexPlugin または DataSerializer プラグインから情報を安全に取得できます。
BackingMapLifecycleListener は、ObjectGrid およびその BackingMaps が初期化される前または後のどの時点においても、追加または削除できます。
BackingMapLifecycleListener プラグインは、重要な eXtreme Scale イベントに関する通知を受け取るために BackingMapLifecycleListener インターフェースを実装する必要があります。BackingMap プラグインは BackingMapLifecycleListener インターフェースを実装できます。また、このプラグインは、バックアップ・マップに追加されるときにリスナーとして自動的に追加することができます。
これらのインターフェースについて詳しくは、API 資料を参照してください。
public void backingMapStateChanged(BackingMap map,
LifecycleEvent event)
throws LifecycleFailedException {
switch(event.getState()) {
case INITIALIZED: // All other plug-ins are initialized.
// Retrieve reference to plug-in X for use from map.
break;
case DESTROYING: // Destroy phase is starting
// Eliminate reference to plug-in X it may be destroyed before this plug-in
break;
}
}
BackingMapLifecycleListener.State 値 | 説明 |
---|---|
INITIALIZING | BackingMap 初期化フェーズを開始しています。BackingMap および BackingMap プラグインが初期化されるところです。 |
INITIALIZED | BackingMap 初期化フェーズが完了しました。すべての BackingMap プラグインが初期化されました。INITIALIZED 状態は、断片配置アクティビティー (プロモーションまたはデモーション) が発生すると、再発する可能性があります。 |
STARTING | BackingMap インスタンスは、ローカル・インスタンス、クライアント・インスタンス、あるいは、サーバー上のプライマリーまたはレプリカ断片のインスタンスとしての使用のためにアクティブ化されつつあります。 この BackingMap インスタンスを所有する ObjectGrid インスタンス内のすべての ObjectGrid プラグインが初期化されました。STARTING 状態は、断片配置アクティビティー (プロモーションまたはデモーション) が発生すると、再発する可能性があります。 |
PRELOAD | BackingMap インスタンスがプリロードに備えて StateManager API によって PRELOAD 状態に設定されているか、構成済みのローダーがデータをバックアップ・マップにプリロードしています。 |
ONLINE | BackingMap インスタンスは、ローカル・インスタンス、クライアント・インスタンス、あるいは、サーバー上のプライマリーまたはレプリカ断片のインスタンスとして作動可能です。 この BackingMap インスタンスを所有する ObjectGrid インスタンス内のすべての ObjectGrid プラグインが初期化されました。この定常状態は、BackingMap で典型的な状態です。ONLINE 状態は、断片配置アクティビティー (プロモーションまたはデモーション) が発生すると、再発する可能性があります。 |
QUIESCE | StateManager API または他のイベントの結果として、BackingMap での作業を停止しつつあります。 新規の作業はできません。プラグインは、すべての既存の作業をできるだけ速やかに終了します。 |
OFFLINE | StateManager API または別のイベントの結果として、BackingMap 上ですべての作業は停止しています。新規の作業はできません。 |
DESTROYING | BackingMap インスタンスは破棄フェーズを開始しています。インスタンスの BackingMap プラグインは、破棄されるところです。 |
DESTROYED | BackingMap インスタンスとすべての BackingMap プラグインは破棄されました。 |
eXtreme Scale イベント・リスナーのクラス名が com.company.org.MyBackingMapLifecycleListener クラスであると想定します。このクラスは、BackingMapLifecycleListener インターフェースを実装します。
<?xml version="1.0" encoding="UTF-8" ?>
<objectGridconfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="myGrid">
<backingMap name="myMap" pluginCollectionRef="myPlugins" />
</objectGrid>
</objectGrids>
<backingMapPluginCollections>
<backingMapPluginCollection id="myPlugins">
<bean id="BackingMapLifecycleListener"
className="com.company.org.MyBackingMapLifecycleListener" />
</backingMapPluginCollection>
</backingMapPluginCollections>
</objectGridConfig>
このファイルを ObjectGridManager プラグインに提供することで、この構成の作成が容易になります。作成した BackingMap インスタンスの myGrid ObjectGrid には、BackingMapLifecycleListener リスナーが設定されています。
BackingMapLifecycleListener と同様に、やはり BackingMapLifecycleListener インターフェースを実装する、XML を使用して指定される他の BackingMap プラグイン (Loader や MapIndexPlugin など) も、ライフサイクル・リスナーとして自動的に追加されます。