I have a problem with uncontrolled loss of DAs  ie. where DAs can drop off
the network without sending out a corresponding DA advert, such as power
loss, or network device failure.

All the DAs in our system have unique scopes, and we perform unicast
searches of each scope (I have a patch to the 1.2.1 library that does
parallel unicast to multiple DAs, which I haven't yet had time to port to
the latest trunk for submission).

We get the list of scopes using the SLPFindScopes call, which queries the
local daemon.  The problem is that when a DA goes down in an uncontrolled
fashion, its scope never seems to get removed from the list of scopes, so we
get timeouts for all subsequent searches until the DA comes back up again,
which is unacceptable in our application (we can cope with a short period
where this occurs, provided the situation is not permanent).

We have tried setting the active DA discovery parameters to their most
aggressive, in the hope that this would flag up the lost DAs, but this makes
no difference.

I have looked at the code, both version 1.2.1 which we are using, and the
latest trunk, and I believe the problem is in both, and arises because the
active DA discovery only adds new DAs to the DA cache, and does not remove
them.  DAs ARE removed from the cache if a unicast request to a DA fails,
but these seem to be related only to service registration and deregistration
and, since each DA has a unique scope, there is no requirement to perform
these operations between DAs.

The two approaches I was considering were

a) Change the active discovery mechanism to query for all DAs (use an empty
previous responders list), and construct a list of those known DAs that
don't reply, removing them from the cache after a time.  This behaviour
could be enabled/disabled using a new property.

b) Perform a regular unicast (DA request?) to each of the known DAs eg. on a
round robin basis so that all DAs are polled within a time period controlled
by a new property (could be set to zero to disable this behaviour)

Obviously, I would like to feed any changes back into the project, so I am
looking for feedback as to which approach would be preferable, or if there
is another approach that would be better, or if someone else was working on
the problem already.

Thanks.

Richard Morrell



Software Architecture & Technologies
THALES UNDERWATER SYSTEMS LTD 

This email, including any attachment, is a confidential communication
intended solely for the use of the individual or entity to whom it is
addressed. It contains information which is private and may be proprietary
or covered by legal professional privilege. If you have received this email
in error, please notify the sender upon receipt, and immediately delete it
from your system.

Anything contained in this email that is not connected with the businesses
of this company is neither endorsed by nor is the liability of this company.

Whilst we have taken reasonable precautions to ensure that any attachment to
this email has been swept for viruses, we cannot accept liability for any
damage sustained as a result of software viruses, and would advise that you
carry out your own virus checks before opening any attachment.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Openslp-devel mailing list
Openslp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openslp-devel

Reply via email to