Issue 3664: Persistent Server Id (interceptors-rtf) Source: Oracle (Dr. Harold Carr, Ph.D., nobody) Nature: Uncategorized Issue Severity: Summary: A PersistentServerId is required for servers which host POA(s) with a persistent lifespan policy. This enables the POA to generate the same adapter ID for the POA within a ORB with a fixed ORB ID in a server with a particular PersistentServerId. Proposal: The persistent server ID is assigned by passing a -ORBPersistentServerID= ... // some value parameter to the ORB_init() call. In java this is done using the org.omg.CORBA.PersistentServerID property. Resolution: Exact text to be determined as a new issue if this issue passes. Revised Text: Actions taken: May 30, 2000: received issue January 9, 2001: closed issue Discussion: End of Annotations:===== Date: Tue, 30 May 2000 09:15:21 -0700 (PDT) Message-Id: <200005301615.JAA22555@shorter.eng.sun.com> From: Harold Carr To: interceptors-ftf@omg.org, issues@omg.org Subject: Persistent Server Id Content-Type: text X-UIDL: U;md9C%0!!/RNe9XCDe9 A PersistentServerId is required for servers which host POA(s) with a persistent lifespan policy. This enables the POA to generate the same adapter ID for the POA within a ORB with a fixed ORB ID in a server with a particular PersistentServerId. Proposal: The persistent server ID is assigned by passing a -ORBPersistentServerID= ... // some value parameter to the ORB_init() call. In java this is done using the org.omg.CORBA.PersistentServerID property. 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