Hitachi

VisiBroker Version 5 Borland(R) Enterprise Server VisiBroker(R) プログラマーズリファレンス


28.2 インタセプタマネージャ

インタセプタのインストールと管理は,インタセプタマネージャで実行します。InterceptorManagerインタフェースは,すべてのグローバルインタセプタを管理するためのグローバルインタセプタマネージャです。

InterceptorManagerは各インタセプタに対応します。InterceptorManagerは特定の種類のインタセプタのリスト,またはチェーンを保持します。これらのインタセプタは同じスコープを持ち,同時に起動する必要があります。そのため,POALifeCycleInterceptorやBindInterceptorのようなグローバルインタセプタは,グローバルInterceptorManagerを持ちますが,スコープ付きのインタセプタは,POAおよびオブジェクトごとのインタセプタも,各スコープのInterceptorManagerを持ちます。各スコープは,グローバル,POA,およびオブジェクトのどの場合も複数のインタセプタ型を保持できます。InterceptorManagerControlから,特定のインタセプタに対する正しい種類のマネージャを取得します。

グローバルインタセプタには,ローカライズされたインタセプタをインストールするために,拡張インタセプタマネージャが渡されることがあります。例えば,各POAのインタセプタはPOALifeCycleInterceptorManagerを使用します。

グローバルインタセプタマネージャのインスタンスであるInterceptorManagerは,ORB::resolve_initial_referencesを呼び出して,文字列InterceptorManagerを引数として渡すことで,取得できます。この値は,POALifeCycleInterceptorやBindInterceptorのようなグローバルインタセプタのインストールのために,ORBが管理モードのとき,つまりORBの初期化中にだけ使用できます。

POALifeCycleInterceptorManagerは各POAのマネージャで,POALifeCycleInterceptorのcreate呼び出し中にだけ使用できます。POALifeCycleInterceptorは,生成用の呼び出し時に,ほかのすべてのサーバ側インタセプタをセットアップできます。BindInterceptorManagerは各オブジェクトのマネージャで,BindInterceptorのbind_succeeded呼び出し時にだけ使用できます。BindInterceptorは呼び出し中にClientRequestInterceptorを設定できます。