Cosminexus 機能解説
EJBクライアント−CORBAネーミングサービス間,EJBクライアント−Enterprise Bean間の通信に対して,タイムアウトを設定できます。また,EJBクライアントとJ2EEサーバの間にCTMを配置している場合,通信タイムアウトは,EJBクライアント−CTM間,およびCTM−J2EEサーバ間に設定できます。
RMI-IIOPの通信のタイムアウトには,EJBコンテナがRMI-IIOPの通信基盤として利用するCosminexus TPBrokerのリクエストタイムアウト機能を利用します。
タイムアウトを設定できるRMI-IIOP通信を,CTM連携ありの場合となしの場合について図に示し,タイムアウトの設定範囲について説明します。
図5-12 タイムアウトを設定できる通信(CTM連携ありの場合)
図5-13 タイムアウトを設定できる通信(CTM連携なしの場合)
RMI-IIOP通信のタイムアウトは,図のA,B,Cの3か所に設定できます。
この機能による通信タイムアウトは,ORBに対して設定します。つまり,ORB配下のすべてのRMI-IIOP通信に対して設定されます。
設定のタイミングは,クライアント起動後の最初のnew javax.naming.InitialContext()実行時です。
CORBAネーミングサービスを利用しない場合でも,この機能を利用するときは,new javax.naming.InitialContext()をクライアントの処理の最初で実行してください。
クライアントからのリクエストに対してプロパティ指定値以内にレスポンスが返らない場合,該当リクエストはタイムアウトとしてキャンセルされます。この機能によって通信タイムアウトが発生した場合,java.rmi.RemoteException(org.omg.CORBA.TIMEOUT)の例外が発生します。この機能を利用するクライアントでは,Enterprise Beanのビジネスメソッド呼び出しなどで,この例外が発生することを考慮する必要があります。
タイムアウトの設定は,設定する範囲によって,定義ファイルのプロパティ,またはCosminexusが提供するAPIのどちらかで行います。プロパティで設定する方法とAPIで設定する方法の概要を説明します。
図5-12,図5-13のAまたはBを設定する方法です。プロパティで設定する場合,タイムアウトの設定方法はEnterprise Beanがどこから呼び出されるかによって異なります。設定は,呼び出し元(EJBクライアント側)のJ2EEサーバ,WebコンテナサーバまたはEJBクライアントアプリケーションのプロパティとして設定します。
次に,Enterprise Beanを呼び出すEJBクライアントの形態ごとの設定方法を示します。
クライアント側のEnterprise Beanが動作するJ2EEサーバのプロパティをカスタマイズして設定します。J2EEサーバの動作設定のカスタマイズについては,マニュアル「Cosminexus システム構築ガイド」を参照してください。
クライアント側のJSP,サーブレットが動作するJ2EEサーバのプロパティをカスタマイズして設定します。J2EEサーバの動作設定のカスタマイズについては,マニュアル「Cosminexus システム構築ガイド」を参照してください。
EJBクライアントアプリケーションの実行時に有効なプロパティとして設定します。EJBクライアントアプリケーションのプロパティの設定については,マニュアル「Cosminexus システム構築ガイド」を参照してください。
図5-12,図5-13のCを設定する方法です。APIで設定する場合,com.hitachi.software.ejb.ejbclientパッケージのAPIを利用します。APIの機能と文法については,マニュアル「Cosminexus リファレンス API編」を参照してください。
RMI-IIOPの通信タイムアウトは,クライアントのプロセス起動後の,最初のInitialContext生成時にプロパティに指定した値が設定されます。ネーミングサービスを利用しない場合でも,RMI-IIOPの通信タイムアウトを設定する場合は,InitialContextを生成する必要があります。
ネーミングサービスの通信タイムアウトを設定する場合は,InitialContext生成やlookupなどの,JNDIのAPI呼び出し時にプロパティに指定した値が設定されます。
通信タイムアウト設定時の注意事項について説明します。
図5-14 Aの範囲とBの範囲の両方に通信タイムアウトを設定している場合の動作
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.