FW: Discovery issues
Francisco Albasini Mourão <[email protected]> Tue, 24 Jun 2008 19:36:14 +0100
| Newsgroups | gmane.comp.java.sun.jini |
|---|---|
| Message-ID | <[email protected]> |
Hi everyone,
I have a simple sample running two jini services: call it ServiceClient and ServiceHost; service ServiceClient acts as a client of service ServiceHost. This sample uses Jini2_0 version.
ServiceClient uses the following piece of code:
...
discover = new LookupDiscoveryManager(groups, locators, new LookupListener());
sdm = new ServiceDiscoveryManager(discover, new LeaseRenewalManager(config), config);
lCache = sdm.createLookupCache(new ServiceTemplate (null, new Class[] {IServiceHost.class}, null),null, new ServiceManager());
...
LookupListener implements DiscoveryListener and ServiceManager implements ServiceDiscoveryListener.
The config object is related to a configuration file that holds no particular configuration for these objects.
The ServiceClient service runs on machine-Client and ServiceHost on machine-Host. Each machine has its own reggie and httpd.
1) For Multicast Discovery, parameters for the LookupDiscoveryManager constructor above in code are as follow:
groups="MyGroup","MySecondGroup" (there is only one machine with reggie as member of these - the machine-Host)
locators= null
2) For Unicast Discovery, parameters for the LookupDiscoveryManager constructor above in code are as follow:
groups= net.jini.discovery.DiscoveryGroupManagement.NO_GROUPS
locators= new LookupLocator[] { new LookupLocator("jinni://<ip_ServiceHost>")}
Everything is ok when I run the services. ServiceClient discovers ServiceHost and some methods are successfully invoked. My issue is when I stop application in machine-Host killing ServiceHost and respective reggie.
1)In the case of Multicast Discovery, I only receive a lookup discard event in ServiceClient approximately 5m:30s after killing machine-Host application.
Maybe there is a parameter for setting this. I just can't find it.
This is a piece of the log when I finally receive the discard notification on ServiceClient:
23/Jun/2008 15:12:23 net.jini.lease.LeaseRenewalManager renewAll
FINE: Renewing lease com.sun.jini.reggie.ConstrainableServiceLease@e4b6741d
23/Jun/2008 15:12:23 net.jini.lease.LeaseRenewalManager renewAll
FINE: Renewing lease com.sun.jini.reggie.ConstrainableServiceLease@a595dfab
23/Jun/2008 15:12:23 net.jini.lease.LeaseRenewalManager renewAll
FINE: Renewing lease com.sun.jini.reggie.ConstrainableServiceLease@e5d63883
23/Jun/2008 15:12:23 net.jini.discovery.LookupDiscovery$UnicastDiscoveryTask run
FINEST: LookupDiscovery - UnicastDiscoveryTask started
23/Jun/2008 15:12:24 net.jini.lease.LeaseRenewalManager renewAll
FINE: Renewing lease com.sun.jini.reggie.ConstrainableServiceLease@ed58f920
23/Jun/2008 15:12:24 net.jini.discovery.LookupDiscovery$Notifier run
FINEST: LookupDiscovery - Notifier thread started
23/Jun/2008 15:12:24 net.jini.discovery.LookupDiscovery$1 run
FINEST: discarded event -- 1 lookup(s)
23/Jun/2008 15:12:25 net.jini.discovery.LookupDiscovery$1 run
FINEST: discarded locator = null
23/Jun/2008 15:12:25 net.jini.discovery.LookupDiscovery$1 run
FINEST: discarded group[0] = ps00041
23/Jun/2008 15:12:25 net.jini.discovery.LookupDiscovery$1 run
FINEST: discarded group[1] = fmourao
23/Jun/2008 15:12:25 net.jini.lease.LeaseRenewalManager remove
FINE: Removed lease com.sun.jini.reggie.ConstrainableEventLease@8b155855
23/Jun/2008 15:12:26 net.jini.lookup.ServiceDiscoveryManager cancelLease
FINER: exception occurred while cancelling an event registration lease
java.rmi.ConnectException: connection refused or timed out to BasicObjectEndpoint[e0b792ce-429c-42d2-a7e6-61c3175934d8,TcpEndpoint[10.10.9.41:35230]]; nested exception is:
java.net.ConnectException: Connection refused: connect
at net.jini.jeri.BasicInvocationHandler.wrapSafeIOException(BasicInvocationHandler.java:857)
at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocationHandler.java:678)
at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethod(BasicInvocationHandler.java:626)
at net.jini.jeri.BasicInvocationHandler.invoke(BasicInvocationHandler.java:495)
at com.sun.jini.reggie.$Proxy13.cancelEventLease(Unknown Source)
at com.sun.jini.reggie.EventLease.cancel(EventLease.java:77)
at net.jini.lease.LeaseRenewalManager.cancel(LeaseRenewalManager.java:1050)
at net.jini.lookup.ServiceDiscoveryManager.cancelLease(ServiceDiscoveryManager.java:3448)
at net.jini.lookup.ServiceDiscoveryManager.access$1000(ServiceDiscoveryManager.java:611)
at net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl.removeProxyReg(ServiceDiscoveryManager.java:1655)
at net.jini.lookup.ServiceDiscoveryManager.dropProxy(ServiceDiscoveryManager.java:2363)
at net.jini.lookup.ServiceDiscoveryManager.access$4200(ServiceDiscoveryManager.java:611)
at net.jini.lookup.ServiceDiscoveryManager$DiscMgrListener.discarded(ServiceDiscoveryManager.java:2335)
at net.jini.discovery.LookupDiscoveryManager.notifyListener(LookupDiscoveryManager.java:1388)
at net.jini.discovery.LookupDiscoveryManager.notifyListener(LookupDiscoveryManager.java:1369)
at net.jini.discovery.LookupDiscoveryManager.access$500(LookupDiscoveryManager.java:105)
at net.jini.discovery.LookupDiscoveryManager$GroupDiscoveryListener.discarded(LookupDiscoveryManager.java:804)
at net.jini.discovery.LookupDiscovery$1.run(LookupDiscovery.java:877)
at com.sun.jini.start.AggregatePolicyProvider$5.run(AggregatePolicyProvider.java:513)
at java.security.AccessController.doPrivileged(Native Method)
at net.jini.discovery.LookupDiscovery$Notifier.run(LookupDiscovery.java:820)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at net.jini.jeri.tcp.TcpEndpoint$ConnectionEndpointImpl.connect(TcpEndpoint.java:513)
at net.jini.jeri.connection.ConnectionManager.connect(ConnectionManager.java:228)
at net.jini.jeri.connection.ConnectionManager$ReqIterator.next(ConnectionManager.java:629)
at net.jini.jeri.BasicObjectEndpoint$1.next(BasicObjectEndpoint.java:371)
at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocationHandler.java:675)
... 19 more
23/Jun/2008 15:12:26 net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl$ProxyRegDropTask run
FINEST: ServiceDiscoveryManager - ProxyRegDropTask started
23/Jun/2008 15:12:26 net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl$ProxyRegDropTask run
FINEST: ServiceDiscoveryManager - ProxyRegDropTask completed
23/Jun/2008 15:12:26 net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl$UnmapProxyTask run
FINEST: ServiceDiscoveryManager - UnmapProxyTask started
23/Jun/2008 15:12:26 net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl$UnmapProxyTask run
FINEST: ServiceDiscoveryManager - UnmapProxyTask completed
2) In the case of Unicast Discovery I only receive a lookup discard event in ServiceClient approximately 9m:30s after killing machine-Host application. Why is this different from the Unicast case. How can I change this setting?
Approximately 5m after killing machine-Host application, ServiceClient log starts registering this every minute:
FINE: Renewing lease com.sun.jini.reggie.ConstrainableServiceLease@b648e8a5
24/Jun/2008 18:23:36 net.jini.lease.LeaseRenewalManager renewAll
FINE: Renewing lease com.sun.jini.reggie.ConstrainableEventLease@2f424901
24/Jun/2008 18:23:37 net.jini.lease.LeaseRenewalManager renewAll
HANDLED: Indefinite exception while renewing lease com.sun.jini.reggie.ConstrainableEventLease@2f424901
java.rmi.ConnectException: connection refused or timed out to BasicObjectEndpoint[5fdf0550-a03f-4849-be75-52c3f4beed65,TcpEndpoint[10.10.9.41:35391]]; nested exception is:
java.net.ConnectException: Connection refused: connect
at net.jini.jeri.BasicInvocationHandler.wrapSafeIOException(BasicInvocationHandler.java:857)
at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocationHandler.java:678)
at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethod(BasicInvocationHandler.java:626)
at net.jini.jeri.BasicInvocationHandler.invoke(BasicInvocationHandler.java:495)
at com.sun.jini.reggie.$Proxy13.renewEventLease(Unknown Source)
at com.sun.jini.reggie.EventLease.doRenew(EventLease.java:96)
at com.sun.jini.lease.AbstractLease.renew(AbstractLease.java:79)
at net.jini.lease.LeaseRenewalManager.renewAll(LeaseRenewalManager.java:1289)
at net.jini.lease.LeaseRenewalManager.access$400(LeaseRenewalManager.java:225)
at net.jini.lease.LeaseRenewalManager$RenewTask.run(LeaseRenewalManager.java:352)
at com.sun.jini.thread.TaskManager$TaskThread.run(TaskManager.java:322)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at net.jini.jeri.tcp.TcpEndpoint$ConnectionEndpointImpl.connect(TcpEndpoint.java:513)
at net.jini.jeri.connection.ConnectionManager.connect(ConnectionManager.java:228)
at net.jini.jeri.connection.ConnectionManager$ReqIterator.next(ConnectionManager.java:629)
at net.jini.jeri.BasicObjectEndpoint$1.next(BasicObjectEndpoint.java:371)
at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocationHandler.java:675)
... 9 more
24/Jun/2008 18:23:39 net.jini.lease.LeaseRenewalManager renewAll
FINE: Renewing lease com.sun.jini.reggie.ConstrainableServiceLease@bba89067
24/Jun/2008 18:23:39 net.jini.lease.LeaseRenewalManager renewAll
FINE:
Although no discard notification is received whatsoever. This is a piece of the log when I finally receive the discard notification for the Unicast Discovery case:
24/Jun/2008 18:24:43 net.jini.discovery.LookupLocatorDiscovery$DiscoveryTask tryOnce
FINEST: LookupLocatorDiscovery - DiscoveryTask started
24/Jun/2008 18:24:43 net.jini.discovery.LookupLocatorDiscovery$Notifier run
FINEST: LookupLocatorDiscovery - Notifier thread started
24/Jun/2008 18:24:43 net.jini.discovery.LookupLocatorDiscovery$Notifier run
FINEST: discarded event -- 1 lookup(s)
24/Jun/2008 18:24:44 net.jini.discovery.LookupLocatorDiscovery$LocatorReg doUnicastDiscovery
INFO: exception during unicast discovery
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at net.jini.discovery.LookupLocatorDiscovery$LocatorReg.doUnicastDiscovery(LookupLocatorDiscovery.java:467)
at net.jini.discovery.LookupLocatorDiscovery$LocatorReg.tryGetProxy(LookupLocatorDiscovery.java:430)
at net.jini.discovery.LookupLocatorDiscovery.regTryGetProxy(LookupLocatorDiscovery.java:1208)
at net.jini.discovery.LookupLocatorDiscovery.access$800(LookupLocatorDiscovery.java:281)
at net.jini.discovery.LookupLocatorDiscovery$DiscoveryTask.tryOnce(LookupLocatorDiscovery.java:647)
at com.sun.jini.thread.RetryTask.run(RetryTask.java:143)
at com.sun.jini.thread.TaskManager$TaskThread.run(TaskManager.java:322)
24/Jun/2008 18:24:44 net.jini.discovery.LookupLocatorDiscovery$Notifier run
FINEST: discarded locator = null
24/Jun/2008 18:24:44 net.jini.discovery.LookupLocatorDiscovery$DiscoveryTask tryOnce
FINEST: LookupLocatorDiscovery - DiscoveryTask failed, will retry later
24/Jun/2008 18:24:44 net.jini.discovery.LookupLocatorDiscovery$Notifier run
FINEST: discarded group[0] = ps00041
24/Jun/2008 18:24:44 net.jini.discovery.LookupLocatorDiscovery$Notifier run
FINEST: discarded group[1] = fmourao
24/Jun/2008 18:24:44 net.jini.lookup.ServiceDiscoveryManager cancelLease
FINER: exception occurred while cancelling an event registration lease
net.jini.core.lease.UnknownLeaseException
at net.jini.lease.LeaseRenewalManager.findEntry(LeaseRenewalManager.java:1206)
at net.jini.lease.LeaseRenewalManager.remove(LeaseRenewalManager.java:1063)
at net.jini.lease.LeaseRenewalManager.cancel(LeaseRenewalManager.java:1049)
at net.jini.lookup.ServiceDiscoveryManager.cancelLease(ServiceDiscoveryManager.java:3448)
at net.jini.lookup.ServiceDiscoveryManager.access$1000(ServiceDiscoveryManager.java:611)
at net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl.removeProxyReg(ServiceDiscoveryManager.java:1655)
at net.jini.lookup.ServiceDiscoveryManager.dropProxy(ServiceDiscoveryManager.java:2363)
at net.jini.lookup.ServiceDiscoveryManager.access$4200(ServiceDiscoveryManager.java:611)
at net.jini.lookup.ServiceDiscoveryManager$DiscMgrListener.discarded(ServiceDiscoveryManager.java:2335)
at net.jini.discovery.LookupDiscoveryManager.notifyListener(LookupDiscoveryManager.java:1388)
at net.jini.discovery.LookupDiscoveryManager.notifyListener(LookupDiscoveryManager.java:1369)
at net.jini.discovery.LookupDiscoveryManager.access$500(LookupDiscoveryManager.java:105)
at net.jini.discovery.LookupDiscoveryManager$LocatorDiscoveryListener.discarded(LookupDiscoveryManager.java:556)
at net.jini.discovery.LookupLocatorDiscovery$Notifier.run(LookupLocatorDiscovery.java:582)
24/Jun/2008 18:24:44 net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl$ProxyRegDropTask run
FINEST: ServiceDiscoveryManager - ProxyRegDropTask started
24/Jun/2008 18:24:44 net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl$ProxyRegDropTask run
FINEST: ServiceDiscoveryManager - ProxyRegDropTask completed
I'd like to receive the notification of discarded reggie as soon as possible in the ServiceClient service. Am I doing something wrong? Is there anything I can configure?
Any help would be appreciated.
Thanx in advance.
--------------------------------------------------------------------------
Getting Started: http://www.jini.org/wiki/Category:Getting_Started
Community Web Site: http://jini.org
jini-users Archive: http://archives.java.sun.com/archives/jini-users.html
Unsubscribing: email "signoff JINI-USERS" to [email protected]