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 サンプル アプリケーション」に示す手順でインターセプタのサンプル アプリケーションをコピーしたディレクトリの名前を表します。
  2. Windows 2003

    > cd <workdirectory>\cxx\data_cxx

    UNIX

    $ cd <workdirectory>/cxx/data_cxx
  3. インターセプタを登録します。
  4. Windows 2003

    > nmake -f makefile.nt config

    UNIX

    $ make -f makefile.mk config
  5. CORBA サーバをブートして CORBA クライアントを実行します。
  6. Windows 2003

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

    UNIX

    > cd <workdirectory>/cxx/app_cxx
    > tmboot -y
    > PersonQueryClient
  7. PersonQuery サンプル アプリケーション」で説明したコマンド構文を使用して、PersonQuery クライアント アプリケーションで呼び出しを任意の回数行います。
  8. PersonQuery アプリケーションを停止します。
  9. > 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 アプリケーションをすべて停止します。
  2. > tmshutdown -y
  3. InterceptorData サンプルのディレクトリに移動します。ここで workdirectory は、「PersonQuery サンプル アプリケーション」に示す手順でインターセプタのサンプル アプリケーションをコピーしたディレクトリの名前を表します。
  4. Windows 2003

    > cd <workdirectory>\cxx\data_cxx

    UNIX

    $ cd <workdirectory>/cxx/data_cxx
  5. インターセプタの登録を解除します。
  6. Windows 2003

    > nmake -f makefile.nt unconfig

    UNIX

    $ make -f makefile.mk unconfig

  ページの先頭       前  次