Cosminexus 機能解説
CTMを使用したリクエストのスケジューリングでは,ネーミングサービスとしてグローバルCORBAネーミングサービスを使用します。
グローバルCORBAネーミングサービスとは,同じCTMドメイン内に含まれるホスト上の業務処理プログラム(Stateless Session Bean)の情報を共有管理しているネーミングサービスのことです。グローバルCORBAネーミングサービスでは,それぞれのホスト上に登録されているEJBホームオブジェクトリファレンスの情報を,CTMドメイン内で共有しています。これによって,リクエストを受け付けたCTMデーモンが処理対象としているJ2EEサーバに目的の業務処理プログラムが登録されていない場合でも,CTMドメイン内のほかのホスト上に存在するCTMデーモンから,目的の業務処理プログラムが登録されているJ2EEサーバを探せるようになり,適切なCTMデーモンにリクエストを振り分けられるようになります。
グローバルCORBAネーミングサービスは,CTMデーモン一つに対して一つ配置します。CTMデーモンは,ほかのCTMデーモンと情報を交換した時に得たほかのホスト上にある業務処理プログラムの情報を,自ホスト内のグローバルCORBAネーミングサービスに登録します。これによって,CTMドメイン内で,グローバルCORBAネーミングサービスの情報が共有,同期されます。このため,J2EEサーバを配置しないでグローバルCORBAネーミングサービスだけを配置するホスト(統合ネーミングスケジューラサーバ)の場合も,ほかのホスト上で動作しているJ2EEサーバの情報を得るために,CTMデーモンを配置する必要があります。
グローバルCORBAネーミングサービスの特徴を次に示します。
グローバルCORBAネーミングサービスを使用した処理の流れの例を次の図に示します。
この例ではホストAとホストBのCTMデーモンが同じCTMドメインに登録されています。ホストAのJ2EEサーバには業務処理プログラムAとBが,ホストBのJ2EEサーバには業務処理プログラムCが登録されています。ただし,ホストAでは障害が発生しています。また,EJBクライアントアプリケーションは,システムプロパティ(java.naming.factory.initialキー)にラウンドロビン検索を実行する指定をして開始しています。
図11-10 グローバルCORBAネーミングサービスを使用した処理の流れの例
図について説明します。
なお,アプリケーションサーバAに障害が発生していなかった場合は,1.のlookupの結果,ホストAのグローバルCORBAネーミングサービスに登録されていたリファレンスが返却されます。そのリファレンスを使用してcreateを実行すると,ホストAのCTMデーモンとホストBのCTMデーモン間でリクエストの振り分けが実行され,ホストBにある業務処理プログラムCのEJBホームオブジェクトリファレンスが返却されます。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.