Jini(TM) Discovery Utilities Release Notes

JiniTM Discovery Utilities v1.1 Release Notes

What's important

The JiniTM discovery utilities contain a set of discovery management interfaces, which define the policies to apply when implementing helper utilities that manage an entity's discovery duties: in particular, the management of multicast (group) discovery and unicast (locator) discovery. The discovery management interfaces are:

The discovery utilities also include a set of standard helper utility classes that implement one or more of the discovery management interfaces. The helper utility classes are:

Notable features of the LookupDiscovery API are described below:

Changes since the 1.1Beta2 release

Since the 1.1Beta2 release, there have been no notable changes to the interfaces or classes making up the Jini discovery utilities.

System properties

These properties are replicated in the complete list of properties affecting Jini discovery, join, and service discovery: Utility Properties.
net.jini.discovery.debug
If set to any value, this property indicates that debugging information related to the execution of the Jini discovery protocols should be printed to System.err. This property can be set on the JVM* of any entity that employs one or more of the following discovery utilities:

  • net.jini.discovery.LookupDiscovery
  • net.jini.discovery.LookupLocatorDiscovery
  • net.jini.discovery.LookupDiscoveryManager

net.jini.discovery.timeout
When a client or service uses the unicast request protocol to communicate with a particular lookup service, the socket connection used by the protocol will time out after N milliseconds, where N is defined by this property. The default value is 60,000 milliseconds (1 minute). This property can be set on the JVM of any entity that employs one or more of the following discovery utilities:

  • net.jini.discovery.LookupDiscovery
  • net.jini.discovery.LookupLocatorDiscovery
  • net.jini.discovery.LookupDiscoveryManager

net.jini.discovery.interface
When this property is set to either a host name or IP address, the network interface corresponding to the given name or address will be used in the multicast discovery process. When not set, the network interface used is typically the default interface as determined by the underlying operating system. This property can be set on the JVM of any entity that employs one or more of the following discovery utilities to participate in the multicast discovery protocol:

  • net.jini.discovery.LookupDiscovery
  • net.jini.discovery.LookupDiscoveryManager

Note that this property can also be set on the JVM in which the Reggie implementation of the lookup service runs. The value of this property controls the network interface the Reggie implementation uses when participating in the multicast discovery protocol as both an entity that is discovered by other entities (a lookup service), and as an entity that discovers other lookup services.

net.jini.discovery.announce
A Jini lookup service will send out multicast packets announcing its existence every N milliseconds. The value of this property can be used to control how often the Reggie implementation of the lookup service sends out multicast announcements and, for entities that discover lookup services, it can be used to control how often multicast announcements from previously discovered lookup services are examined for "liveness". Thus, this property can be set on the JVM in which the Reggie implementation of the lookup service runs, and it also can be set on the JVM of any entity that participates in the multicast discovery protocol through the use of one or more of the following discovery utilities:

  • net.jini.discovery.LookupDiscovery
  • net.jini.discovery.LookupDiscoveryManager

Currently, the default value of this property is 120,000 milliseconds (two minutes).

net.jini.discovery.mtu
If set, this property must be an integer between 512 and the maximum MTU allowed by your system. The value of this property specifies the maximum permissible size of multicast request and announcement packets. The default value is 512. This property can be set on the JVM of any entity that employs one or more of the following discovery utilities to participate in the multicast discovery protocol, as well as the Reggie implementation of the lookup service:

  • net.jini.discovery.LookupDiscovery
  • net.jini.discovery.LookupDiscoveryManager

net.jini.discovery.ttl
If set, this property must be an integer between 1 and 255. This property specifies the time-to-live parameter used by both the multicast announcement and multicast request protocol implementations. The default value is 15. This property can be set on the JVM of any entity that employs one or more of the following discovery utilities to participate in the multicast discovery protocol, as well as the Reggie implementation of the lookup service:

  • net.jini.discovery.LookupDiscovery
  • net.jini.discovery.LookupDiscoveryManager

Known issues

When attempting to use the discovery protocol in the SolarisTM operating environment, the following exception can occur if the system is not configured correctly:

    java.net.SocketException: error setting options

There are two actions that can be taken to diagnose this problem. First, verify that your network interfaces are configured for multicast by typing the following at the command prompt:

    ifconfig -a

If your interfaces are configured for multicast, then the output to the above command should contain the word MULTICAST for each interface. For example, output to this command from a correctly configured system would look something like:

    lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232        
    	    inet 127.0.0.1 netmask ff000000
    hme0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500    
	    inet 129.148.54.200 netmask ffffff00 broadcast 129.148.54.255

Where the line containing the "inet" and "broadcast" IP addresses (inet 129.148.54.200 netmask ffffff00 broadcast 129.148.54.255) will contain addresses particular to your system.

If your interfaces are not configured for multicast, have your system administrator reconfigure your system for multicast.

If your interfaces are configured for multicast, then the problem may be that multicast routing is not configured. To determine whether this is the problem, type the following at the command line:

    netstat -nr

This command should produce output of the form:

      Routing Table:
        Destination           Gateway           Flags  Ref   Use   Interface
      -------------------- -------------------- ----- ----- ------ ---------
      129.148.54.0         129.148.54.200        U        3   9740   hme0 
      224.0.0.0            129.148.54.200        U        3      0   hme0 
      default              129.148.54.157        UG       0  13646 
      127.0.0.1            127.0.0.1             UH       0 662071   lo0 

If the output does not list the destination address as 224.0.0.0, check to see if the default interface for multicast route configuration has been set in the file /etc/rc2.d/S72inetsvc. On a machine installed with the Solaris 2.6 operating environment, you should see the line:

    /usr/sbin/route add -interface -netmask "240.0.0.0" "224.0.0.0" "$mcastif"

This line typically appears near the bottom of the file. If it does not appear, or is commented out, the default interface for multicast is not set. Have your system administrator modify this file to set this interface for your system.


Copyright © 2000 Sun Microsystems, Inc. All Rights Reserved.
*As used on this webpage, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform.