Issue 3667: Object Adapter Destroy Interceptor (interceptors-rtf) Source: Oracle (Dr. Harold Carr, Ph.D., nobody) Nature: Uncategorized Issue Severity: Summary: An interceptor which gets invoked when an object adapter is destroyed is useful in the Server Activation Framework case such that POAs can remove information registered with an activation daemon. Resolution: Close issue. No change. Revised Text: Actions taken: May 30, 2000: received issue January 9, 2001: closed issue Discussion: End of Annotations:===== Date: Tue, 30 May 2000 09:28:01 -0700 (PDT) Message-Id: <200005301628.JAA23471@shorter.eng.sun.com> From: Harold Carr To: interceptors-ftf@omg.org, issues@omg.org Subject: Object Adapter Destroy Interceptor Content-Type: text X-UIDL: CEJe9XPad9+M9e9h;p!! An interceptor which gets invoked when an object adapter is destroyed is useful in the Server Activation Framework case such that POAs can remove information registered with an activation daemon. Date: Tue, 30 May 2000 10:33:28 -0700 (PDT) Message-Id: <200005301733.KAA29297@shorter.eng.sun.com> From: Harold Carr To: interceptors-ftf@omg.org, issues@omg.org Subject: Portable Activation Framework using Portable Interceptors Content-Type: text X-UIDL: BMhd9FO!e9BIBe9&$>e9 Jurgen, this is a discussion of issues I raised earlier, please do not make this an issue. All, OK, as promised, here are how the issues I raised relate to building a portable activation service. Please keep in mind, *THIS IS A USE-CASE*. We are *NOT* trying to standardize location/activation services. We are proposing changes/extensions to portable interceptors based on our prototype of an activation service built using portable interceptors. I've identified the portions of the service which require changes/extensions to the existing PI spec by preceding them with "PI FTF". ORBD Startup - PI FTF - ORBD is started on same port -ORBPersistentServerPort. - ORBD specifies its ORBInitializer class. - ORBDInitializer creates and registers activator reference in initial references. - ORBDInitializer creates and registers a ServerRequestInterceptor. Server Startup - PI FTF - started with PersistentServerId (passed by activator). - Activator passes appropriate ORBInitializer class. - ORBInitializer pre_init creates and registers IORInterceptor. - ORBInitializer post_init uses - ORBInitInfo::resolve_initial_references to obtain a reference to the Activator which it gives to - IORInterceptor for use during POA creation. Server POA Creation In IORInterceptor: - PI FTF - everything happens in new point: components_available. - PI FTF - need access to POA LifeSpanPolicy (to determine if - PERSISTENT). - If persistent then do the following steps. - PI FTF - get the IORTemplate associated with this POA. - Register that template with the activator. - Get the activator's template. - PI FTF - set the adapter's template to the activator's template. - Now, any references created by this POA will "point" to the activator (and contain components appropriate for the activator). - PI FTF - the IORInterceptor must be called each time a POA is (re)created to enable it to exchange information with the - activator. ORBD Server Request Interceptor - Get the adapter_id from ServerRequestInfo. - Lookup the template associated with this id. - If it doesn't exist then request is for the ORBD. - Otherwise - Get the object_id from ServerRequestInfo. - PI FTF - Use the object id to create a new reference from the - server's template. - Raise ForwardRequest. Misc - PI FTF - not explicit is the fact that Java ORBs need an ORB ID for persistent references to be unique: serverId | orbId | poa path/name. - PI FTF - when an object adapter is destroyed it notifies the activator of this fact so that the activator may reclaim resources. Cheers, Harold