[omniORB] Deleting a StructuredPushConsumer
Frederic Prin
frederic.prin at silvaco.com
Fri Jun 11 16:51:13 BST 2004
Hi,
I get an error message when deleting a StructuredPushConsumer instance
that I create like this:
event_observer = new MyObserver ;
/* My observer inherit from StructuredPushConsumer and overide the
push_structured_event method*/
CosNotifyComm::StructuredPushConsumer_var push_consumer ;
CosNotifyChannelAdmin::StructuredProxyPushSupplier_var
structured_proxy ;
push_consumer = eventObserver->_this() ;
structured_proxy =
{ /* pseudo code */
generic_proxy = consumer_admin
->obtain_notification_push_supplier(
CosNotifyChannelAdmin::STRUCTURED_EVENT,
proxy_id ) ;
structured_proxy =
CosNotifyChannelAdmin::StructuredProxyPushSupplier::_narrow(
generic_proxy ) ;
structured_proxy->connect_structured_push_consumer( pushConsumer ) ;
Return structured_proxy;
}
/* Store all objects in *_Var vector */
mEventObserverConsumerList.push_back(
push_consumer ) ;
mEventObserverProxyList.push_back(
structured_proxy ) ;
mEventObserverPtrList.push_back( eventObserver )
;
/* From here I receive events successfully */
Then before the ORB is shutdown I do not need ne more this consumer so I
remove it like this:
(StructuredPushConsumer s are stored in vector of
StructuredPushConsumer_Var)
mEventObserverConsumerList[i]->disconnect_structured_push_consumer() ;
mEventObserverProxyList[i]->remove_all_filters();
mEventObserverProxyList[i]->disconnect_structured_push_supplier() ;
mEventObserverConsumerList.erase(
mEventObserverConsumerList.begin() + i ) ;
mEventObserverProxyList.erase(
mEventObserverProxyList.begin() + i ) ;
Then I do not need this event handler anymore, so I
delete event_observer ;
When the delete is executed I get this error message:
omniORB: ERROR -- A servant has been deleted that is still
activated.
id: root<33554432> (active)
Is someone get an idea why I get this message ?
I try some CORBA::release on mEventObserverConsumerList[i] but it fails
(ref count becomes <0)
If I delete event_observer after my main servant is destroyed and orb is
shutdown, it works.
Is it forbiden to delete StructuredPushConsumer instance while the ORB
is running (not shutdown) ?
Thanks for your help
Fred
(
Frédéric Prin )
Senior Software Engineer /
S I L V A C O (
Grenoble REsearch CEnter \
Tel 04 56 38 10 33 )
__________________________/___
/__/__/__/__/__/__/__/__/__/__/
/__/__/__/__/__/__/__/__/_____/
/__/__/__/__/__/__/__/__/__/__/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20040611/ee576bc2/attachment.htm
More information about the omniORB-list
mailing list