[Ace-users] [tao-bugs] Notify_Service subscription management

Hans Utz hans.utz at nasa.gov
Wed Aug 22 11:37:44 CDT 2007


       TAO VERSION: 1.5.10
       ACE VERSION: 5.5.10

       HOST MACHINE and OPERATING SYSTEM: Linux RH WS 4
       COMPILER NAME AND VERSION (AND PATCHLEVEL): gcc 3.4.6

       THE $ACE_ROOT/ace/config.h FILE:
         config-linux.h
       THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE:
         platform_linux.GNU

       AREA/CLASS/EXAMPLE AFFECTED: Notification Service

       DOES THE PROBLEM AFFECT:
            EXECUTION

       SYNOPSIS:

StructuredPushSupplier::subscription_change not called when subscription 
is removed.

      DESCRIPTION:

A StructuredPushSupplier implementation, connected to the notification 
service gets correctly called its subscription_change() method, with the 
correct added events list, when a consumer subscribes for an event. 
When, the subscription is removed, though, subscription_change() is not 
called.

The subscription management internally seems to keep track correctly of 
the events subscribed. When multiple consumers subscribe for the same 
event and are stopped one by one afterwards, the event type vanishes 
from the list returned by ProxyPushSupplier::obtain_subscribed_types() 
at the  right time. As yet another data point: The offer management 
works correctly for adding and removing offers for the test cases I came 
up so far.

       SAMPLE FIX/WORKAROUND:

(1) Test for subscriptions by using 
ProxyPushSupplier::obtain_subscribed_types() to test if consumers are 
still interested in an event type.
(2) Just produce the events unconditionally.

Cheers,
Hans

-- 
Hans Utz - USRA/RIACS at NASA Ames
I do not speak for NASA, and NASA does not speak for me.



More information about the Ace-users mailing list