Re: Discovery issues

Francisco Albasini Mourão <[email protected]> Tue, 8 Jul 2008 16:52:50 +0100
Newsgroups gmane.comp.java.sun.jini
Message-ID <[email protected]>
I found the solution for this problem in the archives. Item 6647 (date 200-05-17)

Thanx anyway!

 

Francisco Mourão

Engenheiro Desenvolvimento

Brisa Auto-Estradas de Portugal, S.A.

DIT/ddt - Departamento de Desenvolvimento Tecnológico

Tel: +351 21 444 9183 - Fax: +351 21 4449190

Email: [email protected] <mailto:[email protected]> 

 

Declaração:

A informação contida nesta mensagem, e os ficheiros anexos, é privilegiada e confidencial, destinando-se exclusivamente ao(s) destinatário(s).

Se não é o destinatário (ou o responsável pela sua entrega ao destinatário) e recebeu a mesma por engano, fica notificado que é estritamente proibido reproduzir, guardar ou distribuir toda ou qualquer parte desta mensagem e ficheiros anexos.

Por favor reencaminhe a mensagem para o responsável pelo seu envio ou contacte-nos por telefone e elimine a mensagem e ficheiros anexos do seu computador, sem os reproduzir. 

 

Disclaimer:

The information contained in this message, and any files attached, is privileged and confidential, and intended exclusively for the addressee(s).

If you are not the intended recipient (or the person responsible for delivering to the intended recipient) and received this message by mistake, be aware that copy, storage, distribution or any other use of all or part of this message and the files attached is strictly prohibited.

Please notify the sender by reply e-mail or contact us by telephone and delete this message and the files attached, without retaining a copy.

 

________________________________

From: Francisco Albasini Mourão [mailto:[email protected]] 
Sent: terça-feira, 24 de Junho de 2008 19:36
To: [email protected]
Subject: FW: Discovery issues

 

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]

--------------------------------------------------------------------------
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]