xscmd ユーティリティーを使用して、 各コンテナーが使用しているサービスとサービス・ランキングを表示したり、バンドルの 新しいバージョンを使用するようランタイム環境を更新したりするなど、管理者用タスクを実行できます。
手動で OSGi フレームワークにバンドルをコピーしたり、インストールしたり、 それらのバンドルを開始したりする作業は管理者の担当です。eXtreme Scale には、ObjectGrid 記述子 XML ファイル内で eXtreme Scale プラグインとして 識別されたサービスを追跡する OSGi ServiceTrackerCustomizer が組み込まれています。 xscmd ユーティリティーを使用すると、プラグインのどのバージョンが 使用されているか、どのようなバージョンが使用可能かを確認でき、バンドル・アップグレードも 実行できます。
eXtreme Scale はサービス・ランキング番号を 使用して、各サービスのバージョンを識別します。参照先が同じサービスが 2 つ以上ロードされると、eXtreme Scale は、 ランキングが最も高いサービスを自動的に使用します。
eXtreme Scale は ランキングが最も高いサービス参照を自動的に選択するため、複数ランキングのプラグイン・サービスが 設定されたデータ・グリッドが開始される可能性があります。
コマンドがランキングの不一致を検出するか、サービスを検出できない場合は、ゼロ以外の エラー・レベルが設定されます。コマンドが正常に完了した場合、エラー・レベルは 0 に設定されます。
次の例は、4 つのサーバーの同一グリッドに 2 つのプラグインが インストールされている場合の osgiCurrent コマンドの出力を示します。 loaderPlugin プラグインはランキング 1 を使用し、txCallbackPlugin プラグインは ランキング 2 を使用しています。
OSGi Service Name Current Ranking ObjectGrid Name MapSet Name Server Name
----------------- --------------- --------------- ----------- -----------
loaderPlugin 1 MyGrid MapSetA server1
loaderPlugin 1 MyGrid MapSetA server2
loaderPlugin 1 MyGrid MapSetA server3
loaderPlugin 1 MyGrid MapSetA server4
txCallbackPlugin 2 MyGrid MapSetA server1
txCallbackPlugin 2 MyGrid MapSetA server2
txCallbackPlugin 2 MyGrid MapSetA server3
txCallbackPlugin 2 MyGrid MapSetA server4
OSGi Service Name Current Ranking ObjectGrid Name MapSet Name Server Name
----------------- --------------- --------------- ----------- -----------
loaderPlugin 1 MyGrid MapSetA server1
loaderPlugin 2 MyGrid MapSetA server2
loaderPlugin 1 MyGrid MapSetA server3
loaderPlugin 1 MyGrid MapSetA server4
txCallbackPlugin 2 MyGrid MapSetA server1
txCallbackPlugin 2 MyGrid MapSetA server2
txCallbackPlugin 2 MyGrid MapSetA server3
txCallbackPlugin 2 MyGrid MapSetA server4
ObjectGrid 構成が参照しているサービスを含んでいるバンドルが開始すると、eXtreme Scale ランタイム環境は プラグインを自動的に追跡します。ただし、すぐには使用しません。osgiAll コマンドは、各サーバーで 使用可能なプラグインを表示します。
パラメーターを指定せずに実行すると、すべてのグリッドおよびサーバーのすべてのサービスが 表示されます。追加のフィルター (-serviceName <service_name> フィルターなど) を 指定して、単一サービスやデータ・グリッドのサブセットなどに出力を制限できます。
Server: server1
OSGi Service Name Available Rankings
----------------- ------------------
loaderPlugin 1, 2
txCallbackPlugin 1
Server: server2
OSGi Service Name Available Rankings
----------------- ------------------
loaderPlugin 1, 2
txCallbackPlugin 1
Summary - All servers have the same service rankings.
Server: server1
OSGi Service Name Available Rankings
----------------- ------------------
loaderPlugin 2
txCallbackPlugin 1
Server: server2
OSGi Service Name Available Rankings
----------------- ------------------
loaderPlugin 1, 2
txCallbackPlugin 1
Summary - The following servers are missing service rankings:
Server OSGi Service Name Missing Rankings
------ ----------------- ----------------
server1 loaderPlugin 1
Server: server2
OSGi Service Name Available Rankings
----------------- ------------------
invalidPlugin No service found
Server: server1
OSGi Service Name Available Rankings
----------------- ------------------
invalidPlugin No service found
Summary - All servers have the same service rankings.
osgiCheck コマンドは、-serviceRankings <service name>;<ranking>[,<serviceName>;<ranking>] の形式で、サービス・ランキングの セットを 1 つ以上受け入れます。
ランキングがすべて使用可能な場合、メソッドはエラー・レベル 0 を 返します。使用不可のランキングが 1 つ以上ある場合は、ゼロ以外のエラー・レベルが設定されます。 指定されたサービス・ランキングを含んでいないすべてのサーバーの表が表示されます。 追加フィルターを使用して、eXtreme Scale ドメイン内の使用可能なサーバーの サブセットにサービス・チェックを制限できます。
Server OSGi Service Unavailable Rankings
------ ------------ --------------------
server1 loaderPlugin 3
server2 loaderPlugin 3
コマンドは、-serviceRankings <service name>;<ranking>[,<serviceName>;<ranking>] -g <grid name> -ms <mapset name> の形式で、サービス・ランキングの セットを 1 つ以上受け入れます。
更新処理はべき等のプロセスであるため、クライアントがいずれかのタスクを完了できない場合は、 操作がロールバックされることになります。クライアントがロールバックを実行できない場合または クライアントが更新処理中に中断された場合は、同じコマンドを再実行でき、クライアントは 適切なステップから続行します。
クライアントがプロセスを続行できず、別のクライアントからプロセスが 再始動された場合、-force オプションを使用すると、クライアントが更新を 実行できるようになります。osgiUpdate コマンドは、複数のクライアントが同一 マップ・セットを同時に更新しないようにします。osgiUpdate コマンドの詳細については、xscmd による eXtreme Scale プラグインの OSGi サービスの更新を参照してください。