InterceptorSimpサンプル・インターセプタ
PersonQueryサンプル・インターセプタのしくみ
InterceptorSimpサンプル・インターセプタでは、インターセプタに渡されたリクエストにおけるオペレーションにRequestContextオブジェクトを介してアクセスする方法を示します。InterceptorSimpサンプルがリクエストをインターセプトすると、インターセプタは次の処理を行います。
•
|
データ・ファイルからオペレーション名を書き出します。ただし、リクエストのパラメータを解釈したり変更したりはしません。
|
•
|
インターセプタ・メソッドから適切なステータスを返します。
|
インターセプタに対して正常な呼出しが行われた場合、クライアント呼出しはターゲット・オブジェクトに渡されて通常の方法で処理されます。InterceptorSimpサンプル・インターセプタでは、次のことが示されます。
•
|
基本的なモニタリング・サービスの実装。これは、呼び出されたターゲット・オブジェクトの各オペレーションを追跡するだけのサービスです。
|
•
|
インターセプタが、ORBによってインターセプタ・メソッドに渡されたパラメータにアクセスして、リクエストに含まれるオペレーションを識別する方法。
|
InterceptorSimpサンプル・インターセプタでは、定義および登録されるものの単一のソース・ファイル内で実装される2種類のインターセプタも示されます。この例では、クライアント・インターセプタとターゲット・インターセプタは個別に登録されます。先に初期化されるのは、クライアント・インターセプタです。
PersonQueryインターセプタの登録および実行
第4章「PersonQueryサンプル・アプリケーション」のPersonQueryサンプル・アプリケーションをビルドするmakefileを実行すると、InterceptorSimpインターセプタを含むサンプル・インターセプタ一式全部もビルドされます。この項では、実行時にPersonQueryアプリケーションと共に機能するようにInterceptorSimpインターセプタを登録する方法を説明します。
InterceptorSimpクライアント・インターセプタおよびサーバー・インターセプタを登録して実行するには、次の手順に従います。
> cd <
workdirectory>\cxx\simple_cxx
$ cd <
workdirectory>/cxx/simple_cxx
> nmake -f makefile.nt config
$ make -f makefile.mk config
3.
|
CORBAサーバーをブートしてクライアントを実行します。
|
> cd <
workdirectory>\cxx\app_cxx
> tmboot -y
> PersonQueryClient
> cd <
workdirectory>/cxx/app_cxx
> tmboot -y
> PersonQueryClient
5.
|
PersonQueryアプリケーションを停止します。
|
単純なクライアント・インターセプタからの出力は、次の構文で名前を付けられたファイルに入っています。
InterceptorSimpClient
xxxx.out
上述の構文の行で、
xxxxはインターセプタが実行された実行可能ファイルのプロセスIDを表します。たとえば、
InterceptorSimpClientxxx.outファイルは以下のそれぞれについて1つずつ、全部で3つあります。
各ファイルの内容は、ORBと実行可能ファイルがどのようにやり取りしたかに応じて変わります。たとえば、ターゲット・インターセプタはサーバー上で実行され、クライアント・インターセプタはクライアント上で実行されるので、InterceptorSimpClientログ・ファイルに記録されるターゲット・インターセプタからの出力は通常、非常に少ない一方で、クライアント・インターセプタからの出力はより多くなっています。
InterceptorSimpサンプル・インターセプタでPersonQueryサンプル・アプリケーションを実行後に、次の手順によってこれらのインターセプタの登録を解除できます。
1.
|
次のコマンドを入力して、実行中のCORBAアプリケーションをすべて停止します。
|
InterceptorSimpクライアント・インターセプタおよびサーバー・インターセプタの登録を解除するには、次の手順に従います。
> cd <
workdirectory>\cxx\simple_cxx
$ cd <
workdirectory>/cxx/simple_cxx
> nmake -f makefile.nt unconfig
$ make -f makefile.mk unconfig