[Ace-users] [tao-users] Notification Service: Lifetime of EventChannels

Steve Totten totten_s at ociweb.com
Thu Jan 17 07:17:57 CST 2008


Hello Wernke,

Wernke zur Borg wrote:
> Dear all,
> 
> can somebody enlighten me on the concept of EventChannels in the
> Notification Service please. 
> 
> I can create an EventChannel with the EventChannelFactory but I do not
> see any method to delete it. Are EventChannels supposed to live
> throughout the lifetime of the Notification Service? 

The EventChannel interface has a destroy() operation
(which it inherits from CosEventChannelAdmin::EventChannel).

According to the CosEvent Service specification:

> The destroy operation destroys the event channel. Destroying an event channel
> destroys all ConsumerAdmin and SupplierAdmin objects that were created via
> that channel. Destruction of a ConsumerAdmin or SupplierAdmin object causes
> the implementation to invoke the disconnect operation on all proxies that were
> created via that ConsumerAdmin or SupplierAdmin object.

The above still holds true of the Notification Service.

> I am assuming a long living Notification Service, similar to the Naming
> Service, with applications starting and stopping. But with the Naming
> Service you can rebind() an already existing name. Is an application
> supposed to persistently store the channelId and re-use the channels
> accross process lifetime? To me this seems to be the only way to prevent
> event channel leakage in the notification service.

To re-use event channels, applications could:

- Persistently store channel ids and use 
EventChannelFactory::get_event_channel()
to obtain the object reference of a particular event channel
(as you suggested).

- Persistently store event channel object references directly
(e.g., use object_to_string() and write the string to a data
base or file), thereby associating each event channel with a
given file name or database entry.

- Bind event channel object references in the Naming Service and
associate each event channel with a given name, where they can
be retrieved by other application entities.

I have seen all of these mechanisms used.

I hope that helps.

Steve
-- 
----------------------------------------------------------------
  Steve Totten, Principal Software Engineer and Partner
  Object Computing, Inc. (OCI), St. Louis, MO, USA
  http://www.ociweb.com/  http://www.theaceorb.com/
----------------------------------------------------------------



More information about the Ace-users mailing list