4種類のサーバインタセプタがあります。
サーバインタセプタの詳細については,「19. ポータブルインタセプタの使用」を参照してください。
POALifeCycleInterceptorオブジェクトはPOAが(create()メソッドによって)生成されるたび,または(destroy()メソッドによって)デストラクトされるたびに呼び出されるグローバルインタセプタです。
package com.inprise.vbroker.InterceptorExt;
public interface POALifeCycleInterceptor {
public void create(org.omg.PortableServer.POA poa,
org.omg.CORBA.PolicyListHolder policies_holder,
IORValueHolder iorTemplate,
InterceptorManagerControl control);
public void destroy(org.omg.PortableServer.POA poa);
}
ActiveObjectLifeCycleInterceptorオブジェクトは,オブジェクトが(createメソッドによって)アクティブオブジェクトマップに追加された場合,またはオブジェクトが(destroyメソッドによって)停止し,エーテライズされたあとに呼び出されます。インタセプタは,POALifeCycleInterceptorによって,POA生成時にPOAごとに登録できます。このインタセプタは,POAにRETAINポリシーがある場合だけ登録できます。
package com.inprise.vbroker.InterceptorExt;
public interface ActiveObjectLifeCycleInterceptor {
public void create(byte[ ] oid,,
org.omg.PortableServer.Servant servant,
org.omg.PortableServer.POA adapter);
public void destroy (byte[ ] oid,,
org.omg.PortableServer.Servant servant,
org.omg.PortableServer.POA adapter);
}
ServerRequestInterceptorオブジェクトは,リモートオブジェクトのサーバインプリメンテーションの起動中のさまざまな段階,例えば(preinvokeメソッドによる)起動前,(postinvoke_premarshalおよびpostinvoke_premarshalメソッドによる)応答のマーシャル前後の起動後に呼び出されます。このインタセプタは,POAごとに,POAの生成時にPOALifeCycleInterceptorオブジェクトによって登録できます。
package com.inprise.vbroker.InterceptorExt;
public interface ServerRequestInterceptor {
public void preinvoke(org.omg.CORBA.Object target,
String operation,
ServiceContext [ ] service_contexts,
InputStream payload,
Closure closure);
public void postinvoke_premarshal(org.omg.CORBA.Object target,
ServiceContextListHolder service_contexts_holder,
org.omg.CORBA.Environment env,
Closure closure);
public void postinvoke_postmarshal(org.omg.CORBA.Object target,
OutputStream payload,
Closure closure);
public void exception_occurred(org.omg.CORBA.Object target,
org.omg.CORBA.Environment env,
Closure closure);
}
IORCreationInterceptorオブジェクトは,POAが(createメソッドによって)オブジェクトリファレンスを生成する場合に呼び出されます。このインタセプタは,POAごとに,POAの生成時にPOALifeCycleInterceptorオブジェクトによって登録できます。
package com.inprise.vbroker.InterceptorExt;
public interface IORCreationInterceptor {
public void create(org.omg.PortableServer.POA poa,
IORValueHolder ior);
}