eXtreme Scale 動的プラグインのビルド

WebSphere® eXtreme Scale には、ObjectGrid および BackingMap プラグインが含まれます。 これらのプラグインは Java で実装され、ObjectGrid 記述子 XML ファイルを使用して 構成されます。動的にアップグレードできる動的プラグインを作成する場合、動的プラグインは 更新時に何らかのアクションを完了する必要がある 可能性があるため、ObjectGrid および BackingMap ライフサイクル・イベントを 認識する必要があります。ライフサイクルのコールバック・メソッド、イベント・リスナー、あるいはその両方で プラグイン・バンドルを拡張すると、プラグインが適切なタイミングでそれらのアクションを完了できるようになります。

始める前に

このトピックは、適切なプラグインのビルドが完了していることを前提とします。 eXtreme Scale プラグインの作成法の詳細については、システム API とプラグインのトピックを参照してください。

このタスクについて

すべての eXtreme Scale プラグインは、BackingMap または ObjectGrid インスタンスに適用されます。 多くのプラグインは他のプラグインと対話もします。例えば、Loader および TransactionCallback プラグインは 連携して、データベース・トランザクションやさまざまなデータベース JDBC 呼び出しと 適切に対話します。プラグインの中には、パフォーマンスを改善するために、他のプラグインの構成データを キャッシュに入れる必要があるものもあります。

BackingMapLifecycleListener および ObjectGridLifecycleListener プラグインは、 個別の BackingMap および ObjectGrid インスタンスのライフサイクル操作が可能です。このプロセスにより、プラグインは親の BackingMap または ObjectGrid とそれぞれのプラグインに変更があると、通知を 受けることができます。 BackingMap プラグインは BackingMapLifecyleListener インターフェースを 実装し、ObjectGrid プラグインは ObjectGridLifecycleListener インターフェースを実装します。 親の BackingMap または ObjectGrid のライフサイクルに変化があると、これらの プラグインが自動的に呼び出されます。 ライフサイクル・プラグインの詳細については、プラグイン・ライフサイクルの管理の トピックを参照してください。

ライフサイクル・メソッドまたは イベント・リスナーを使用したバンドルの拡張は、次の共通タスクの中で必要になる可能性があります。
  • リソース (スレッド、メッセージング・サブスクライバーなど) の開始と停止
  • ピア・プラグインが更新された際の通知指定、プラグインへの直接アクセスの許可、変更の検出

別のプラグインに直接アクセスするときは、必ず OSGi コンテナー経由でそのプラグインにアクセスして、システムのすべてのパーツが 正しいプラグインを参照できるようにしてください。例えば、アプリケーション内のあるコンポーネントが プラグインのインスタンスを直接参照するかキャッシュに入れると、そのプラグインが動的に更新された後も、 コンポーネントはそのバージョンのプラグインへの参照を維持します。この振る舞いは、メモリー・リークのほかに アプリケーション関連の問題の原因にもなります。したがって、コードを作成するときは、OSGi の getService() セマンティクスを 使用して参照を獲得する動的プラグインを使用してください。アプリケーションが 1 つ以上のプラグインを キャッシュに入れる必要がある場合は、ObjectGridLifecycleListener および BackingMapLifecycleListener インターフェースを 使用してライフサイクル・イベントを listen します。 また、アプリケーションは、スレッド・セーフな方法で、必要なときにキャッシュを リフレッシュできなければなりません。

OSGi で使用するすべての eXtreme Scale プラグインは、BackingMapPlugin または ObjectGridPlugin インターフェースもそれぞれ実装する必要があります。 MapSerializerPlugin インターフェースなどの新しいプラグインでは、この実装が 実施されます。これらのインターフェースは、状態をプラグインに注入したり、プラグインのライフサイクルを 制御したりするための一貫性のあるインターフェースを eXtreme Scale ランタイム環境 と OSGi に提供します。

このタスクを使用して、ピア・プラグインが更新されたときに 通知するよう指定します。リスナー・インスタンスを生成するリスナー・ファクトリーを作成してもかまいません。

手順

タスクの結果

ObjectGridPlugin または BackingMapPlugin インターフェースを実装することで、eXtreme Scale はプラグインの ライフサイクルを正しいタイミングで制御できます。

ObjectGridLifecycleListener または BackingMapLifecycleListener インターフェースを実装すると、 プラグインは、関連付けられた ObjectGrid または BackingMap ライフサイクル・イベントのリスナーとして 自動的に登録されます。すべての ObjectGrid および BackingMap プラグインの 初期化が完了し、検索および使用が可能になったことをシグナル通知するときは INITIALIZING イベントが 使用されます。ObjectGrid がオンラインになり、イベントの処理を開始する 準備ができたことをシグナル通知するときは ONLINE イベントが使用されます。