Link to the JIRA issue i opened:
https://issues.apache.org/jira/browse/FELIX-642

Ok...overall problem is as follows:

upnp event delivery to OSGi event listeners fails on random devices after
a certain period of time


Overall Environment Setup
-------------------------
- i have two hosts A and B => A is a Bridge exporting about 20 devices at
the moment (will get more - it's a X10 like system), B acts as a central
server for the devices (Smart Home implementation)
- A is a SensorBridge...and B a central controlpoint importing all those
devices
- Host A is running LINUX, host B Windows Vista (same JVM Version)
- both ends use upnpbasedriver 0.8 and extra bundle from felix project
- the two hosts are connected through a Gigabit Switch (NO WIRELESS USED!)
- all the devices on the server (so the central smart home controller)
that get imported get refined. They subscribe to the upnp device it
refines to get notified on event change.
- on the central server (Host B) i subscribe to UPnP Devices exported by
Host A using UPnPSubscriber Helper class of the extra bundle


Issues
------
- "SOMETIMES" on initial subscription not all devices get notified about
the initial status (devices get found properly though)
- after some time of operation random devices begin to fail - that
means..they do not get notified about event changes anymore, but devices
are still present (so they are still there as UPnPDevice instances in the
central server)....

=> i had debug enabled....and as i see i still receive the event-change
notifies on my Host B (=central server)....if i "resubscribe" to the event
listener of the failed device everything works again (i dont need to
restart the whole basedriver or osgi framework to let it work again - just
my refining driver must be restarted which does the subscription to the
devices using UPnPSubscriber class) ...

SO this STILL GETS DELIVERED, but listeners do not get notified about the
change:
================REQUEST=====================
NOTIFY /evetSub HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.0.5
NT: upnp:event
NTS: upnp:propchange
SID: uuid:956d-a11b-fe88-e08e
SEQ: 0
Content-Length: 165
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
   <property>
      <Status>off</Status>
   </property>
</propertyset>
--------------------------------------------


Tests:
-----------------
- yes - every device exported by the upnpsensorbridge (=Host A) gets found
by the central server (=Host B)

- upnp tester of felix project experiences same issues

- the REFINED devices on the SERVER themselves are using the felix helper
class to subscribe to the events:
// create upnp listener - if evented is true
subscriber = new UPnPSubscriber(bundleContext, this);
subscriber.subscribeAllServicesOf(super.getUPnPDeviceUDN());

- i also tried: EventListener test = new EventListener();
servReg = context.registerService(UPnPEventListener.class.getName(), test,
null);
(so not using UPnPSubscriber) => same problem...so UPnPSubscriber may not
be the root of the problem

- the upnp device implementation on the host exporting the upnp devices (
=Host A, sensorbridge) are using the following line to expose event
notifier
// setup event notifier
notify_switch = new UPnPEventNotifier(context, this,
switchdevswitchservice, switchDev);



if you need something else please contact me! :)


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to