CORBAリクエスト・レベルのインターセプタの使用

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

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

  先頭に戻る       前  次