Cosminexus 機能解説
キューは,J2EEアプリケーション単位,またはBean単位で作成できます。ここでは,スケジュールキューの構成と,キューの共有について説明します。また,キューを共有する場合としない場合の利点についても説明します。
クライアントからのリクエストは,CTMデーモンによって管理されるスケジュールキューによってスケジューリングされます。スケジュールキューは,J2EEアプリケーション(EAR)単位またはBean単位で作成されます。デフォルトのキュー名称は,J2EEアプリケーション単位の場合はJ2EEアプリケーションの名称,Bean単位の場合はBean名となります。J2EEアプリケーション単位またはBean単位でスケジュールキューを持つことで,異なるインタフェースを持つ業務処理プログラム間,またはJ2EEアプリケーションのBean間でキューを共有できます。なお,スケジュールキューで制御されるリクエストは,「EJBホームリファレンスのグローバルCORBAネーミングサービス登録名称」と「業務処理プログラムのリモートインタフェース名称」の組み合わせで管理されます。
スケジュールキューは,同じCTMデーモンに対応づけられている,次のJ2EEアプリケーション間またはBean間で共有できます。
同じ業務処理プログラム構成でもキュー名称が異なる場合や,同じキュー名称でも異なる業務処理プログラム構成を持つJ2EEアプリケーション間では,スケジュールキューは共有できません。
複数のJ2EEサーバ間でスケジュールキューを共有することもできます。ただし,その場合は,ユーザ指定名前空間機能を使用して,それぞれの業務処理プログラムであるEnterprise Beanに別名(Optional Name)を付与する必要があります。ユーザ指定名前空間機能については,「8.2 JNDI名前空間へのオブジェクトのバインドとルックアップ」を参照してください。別名の付与は,J2EEアプリケーションのプロパティとして設定します。J2EEアプリケーションの設定については,マニュアル「Cosminexus システム構築ガイド」を参照してください。
スケジュールキューを共有する場合について,J2EEアプリケーション単位での共有と,Bean単位での共有に分けて説明します。
スケジュールキューを共有すると,複数のJ2EEサーバ上のJ2EEアプリケーションで,リクエストを分散処理できます。
スケジュールキューの共有には,次のような効果があります。
スケジュールキューを共有する例を次の図に示します。
図11-11 スケジュールキューを共有する例(J2EEアプリケーション単位)
EJBクライアントからのルックアップは,グローバルCORBAネーミングサービスに対して実行します。スケジュールキューを共有している場合,共有しているキュー(この場合はX)のリファレンスが取得できるので,そのキューに対してcreateを実行します。そこで取得したCTMレギュレータのリファレンスに対してinvokeを実行すると,スケジュールキューXによって,J2EEサーバ1またはJ2EEサーバ2に処理が振り分けられます。
スケジュールキューを共有すると,複数のJ2EEサーバ上のBeanでリクエストを分散処理できます。
スケジュールキューの共有には,次のような効果があります。
スケジュールキューを共有する例を次の図に示します。
図11-12 スケジュールキューを共有する例(Bean単位)
EJBクライアントからのルックアップは,グローバルCORBAネーミングサービスに対して実行します。スケジュールキューを共有している場合,共有しているキュー(この場合はX)のリファレンスが取得できるので,そのキューに対してcreateを実行します。そこで取得したCTMレギュレータのリファレンスに対してinvokeを実行すると,スケジュールキューXによって,J2EEサーバ1またはJ2EEサーバ2上のBean Aに処理が振り分けられます。
スケジュールキューを共有しない場合,異なるJ2EEサーバに同じJ2EEアプリケーションがインポートされていたり,J2EEサーバ上に同じBeanがあったりしても,リクエストはそれぞれのキューで制御され,実行されます。
スケジュールキューを共有しないと,負荷分散や縮退運転はできなくなりますが,異なるスケジュールキューでリクエストが滞留してもその影響を受けなくなるため,優先的に業務処理を進められます。
スケジュールキューを共有しない場合は,それぞれのJ2EEアプリケーションに含まれる業務処理プログラムに別名を指定しないで,それぞれ異なるルックアップ名称にします。
スケジュールキューを共有しない例を次の図に示します。
図11-13 スケジュールキューを共有しない例
EJBクライアントからのルックアップは,グローバルCORBAネーミングサービスに対して実行します。スケジュールキューを共有していない場合,指定したJ2EEアプリケーションを制御するキュー(この場合はX)のリファレンスが取得できるので,そのキューに対してcreateを実行します。そこで取得したCTMレギュレータのリファレンスに対してinvokeを実行すると,スケジュールキューXが制御しているJ2EEサーバ1に処理が振り分けられます。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.