BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   CORBA 要求レベルのインターセプタ   |   前へ   |   次へ   |   目次   |   索引

InterceptorData サンプル・インターセプタ

 

この章では、PersonQuery サンプル・アプリケーションで使用するために設計されている、次の 2 つのサンプル・インターセプタについて説明します。

ここでは、各インターセプタのしくみについて説明し、次にそれらを PersonQuery サンプル・アプリケーションでビルドして実行する方法を示します。

 


InterceptorDataClient インターセプタ

InterceptorDataClient インターセプタは、各クライアント・アプリケーションの要求パラメータと応答パラメータをインターセプトしてログに記録します。このインターセプタはまた、PersonQuery サーバ・アプリケーションに対するある特定のオペレーションを、クライアント・アプリケーションの特定の基準に一致するユーザが呼び出せるようにします。InterceptorDataClient インターセプタは、ClientRequestInterceptorクラスから継承される InterceptorDataClient インターフェイスをインプリメントします。

InterceptorDataClient クラスは、次のメソッドをインプリメントします。

さらに、データ・インターセプタが InterceptorDataClientInit メソッドを提供して、クライアント・インターセプタ・クラスを初期化します。

 


InterceptorDataTarget インターセプタ

InterceptorDataTarget インターセプタは要求および応答データのパラメータをインターセプトしてログに記録します。このインターセプタはまた、x の文字でデータをマスキングして特定の応答パラメータから、機密データを削除します。InterceptorDataTarget インターセプタは、InterceptorDataTarget クラスから継承される InterceptorDataTarget インターフェイスをインプリメントします。

InterceptorDataTarget クラスは、次のメソッドをインプリメントします。

さらに、データ・インターセプタが InterceptorDataTargetInit メソッドを提供して、ターゲット・インターセプタ・クラスを初期化します。

 


InterceptorData インターセプタのインプリメント

InterceptorData インターセプタをインプリメントするために使用されるコードについては、CORBA 要求レベルのインターセプタの開発で示しています。次の操作を行う方法については、そちらを参照してください。

  1. インプリメンテーション・ファイルの起動

  2. 実行時のインターセプタの初期化

  3. 要求からのインターセプタ名の取得

  4. 要求内のオペレーションの識別

  5. インターセプタの応答オペレーションのインプリメント

  6. データ入力ストリームからのパラメータの読み出し

 


InterceptorData インターセプタの登録および実行

PersonQuery サンプル・アプリケーションで説明した PersonQuery サンプル・アプリケーションをビルドする makefile を実行すると、InterceptorData インターセプタを含むサンプル・インターセプタ一式全部が、同様にビルドされます。この節では、実行時に PersonQuery アプリケーションと共に機能するように InterceptorData インターセプタを登録する方法を説明します。

InterceptorData クライアント・インターセプタおよびサーバ・インターセプタを登録して実行するには、次の手順に従います。

  1. InterceptorData サンプルのディレクトリに移動します。ここで workdirectory は、PersonQuery サンプル・アプリケーションに示す手順で インターセプタのサンプル・アプリケーションをコピーしたディレクトリの 名前を表します。

    Windows 2000

    > cd <workdirectory>\cxx\data_cxx

    UNIX

    $ cd <workdirectory>/cxx/data_cxx

  2. インターセプタを登録します。

    Windows 2000

    > nmake -f makefile.nt config

    UNIX

    $ make -f makefile.mk config

  3. CORBA サーバをブートして CORBA クライアントを実行します。

    Windows 200

    > cd <workdirectory>\cxx\app_cxx
    > tmboot -y
    > PersonQueryClient

    UNIX

    > cd <workdirectory>/cxx/app_cxx
    > tmboot -y
    > PersonQueryClient

  4. PersonQuery サンプル・アプリケーションで説明したコマンド構文を使用し て、PersonQuery クライアント・アプリケーションで呼び出しを任意の回数 行います。

  5. PersonQuery アプリケーションを停止します。

    > tmshutdown -y

 


インターセプタ出力の検証

InterceptorData クライアント・インターセプタおよびターゲット・インターセプタは、各呼び出しをログに記録します。PersonQuery アプリケーションの各セッションについて、クライアント・インターセプタは InterceptorDataClientxxx.out という名前のファイルを作成し、ターゲット・インターセプタは InterceptorDataTargetxxx.out という名前のファイルを作成します。ここでは、各インターセプタのログ・ファイルのサンプルを示します。

クライアント・インターセプタのログ出力例

InterceptorDataClientInit called
ClientInterceptorData::id called
 
ClientInterceptorData::client_invoke called
ClientInterceptorData::client_response called
  Request Id: 1
  unable to find request for this reply (must not be one we care about)
 
ClientInterceptorData::client_invoke called
  Request Id: 2
  Interface: IDL:beasys.com/PersonQuery:1.0
  Operation: findPerson
  Parameters:
  name: ALISTER LANCASHIRE
  address: 3 PENNY LANE 
LONDON GB UK 
  ss: 999-99-9999 
  sex: can't tell
  age(yrs.): 85
  marital status: single
  hobby: stamp collecting
  date-of-birth: 11/25/1913
  height(in.): 32
  weight(lbs.): 57
  hair color: unknown
  eye color: blue
  skin color: white
  other markings: missing limb

ターゲット・インターセプタのログ出力例

InterceptorDataTargetInit called
TargetInterceptorData::id called
 
TargetInterceptorData::target_response called
  Request Id: 2
  ReplyStatus: GIOP::NO_EXCEPTION
  Interface: IDL:beasys.com/PersonQuery:1.0
  Operation: findPerson
  Method Result: TRUE
  Parameters:
           Maximum: 8
           Length: 8
 
           Item 0
  name: ALISTER LANCASHIRE
  address: 3 PENNY LANE 
      LONDON GB UK 
  ss: NO PRIVILEDGE
  sex: NO PRIVILEDGE
  age (years): NO PRIVILEDGE
  marital status: NO PRIVILEDGE
  hobby: stamp collecting
  date-of-birth: NO PRIVILEDGE
  height (in.): 32
  weight (lbs.): 57
  hair color: unknown
  eye color: blue

  skin color: NO PRIVILEDGE
  other markings: missing limb

 


インターセプタの登録解除

InterceptorData サンプル・インターセプタで PersonQuery サンプル・アプリケーションを実行後に、次の手順でこれらのインターセプタの登録を解除できます。

  1. 次のコマンドを入力して、実行中の CORBA アプリケーションをすべて シャットダウンします。

    > tmshutdown -y

  2. InterceptorData サンプルのディレクトリに移動します。ここで workdirectory は、PersonQuery サンプル・アプリケーションに示す手順で インターセプタのサンプル・アプリケーションをコピーしたディレクトリの 名前を表します。

    Windows 2000

    > cd <workdirectory>\cxx\data_cxx

    UNIX

    $ cd <workdirectory>/cxx/data_cxx

  3. インターセプタの登録を解除します。

    Windows 2000

    > nmake -f makefile.nt unconfig

    UNIX

    $ make -f makefile.mk unconfig

 

back to top previous page next page