java.io.EOFException using LookupCache
Dennis Brake <[email protected]> Thu, 15 May 2008 07:50:56 -0400
| Newsgroups | gmane.comp.java.sun.jini |
|---|---|
| Message-ID | <[email protected]> |
I'm testing scalability on a number of machines by registering services and then trying to discover them. I've seen similar problems for people using JavaSpaces but I'm only using the JoinManager and the LookupCache. I'm testing scalability on a number of machines by registering services and then trying to discover them. I'm getting random errors like the following: INFO: Exception occurred during call to lookup java.rmi.UnmarshalException: exception unmarshalling response; nested exception is: java.io.IOException: I/O error reading from mux connection: java.io.EOFException at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocat ionHandler.java:847) at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethod(BasicInvocationH andler.java:659) at net.jini.jeri.BasicInvocationHandler.invoke(BasicInvocationHandler.java: 528) at com.sun.jini.reggie.$Proxy2.lookup(Unknown Source) at com.sun.jini.reggie.RegistrarProxy.lookup(RegistrarProxy.java:128) at net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl$LookupTask.run(S erviceDiscoveryManager.java:929) at net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl$RegisterListener Task.run(ServiceDiscoveryManager.java:901) at com.sun.jini.thread.TaskManager$TaskThread.run(TaskManager.java:331) Caused by: java.io.IOException: I/O error reading from mux connection: java.io.EOFException at com.sun.jini.jeri.internal.mux.Session$MuxInputStream.read(Session.java: 852) at net.jini.jeri.connection.ConnectionManager$Outbound$Input.read(Connectio nManager.java:515) at net.jini.jeri.BasicObjectEndpoint.executeCall(BasicObjectEndpoint.java:4 11) at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocat ionHandler.java:806) ... 7 more I can successfully run my examples using only 2 machines, however when I scale up I get the errors. The setup where I see the errors is 50 machines and on each machine I run a JVM with 10 services. I have one LUS running on a separate machine. My code creates a service and uses the JoinManager to register it (this part doesn't cause problems), then I create a LookupCache and listen for new services. In almost all 50 JVMs I get some errors. I'm expecting to discover 251 registrations (the extra one for the LUS) but I usually get somewhere in the range of 180. Most of the action happens within the first minute but my code waits for 5 minutes to complete the test. I've tested the low level networking by creating a ServerSocket, announcing its location using a MulticastSocket, and connecting to the server using unicast. This was scaled to 140 machines and never gave me a problem, each machine discover the others and was able to connect. Has anyone else had this problem? Thanks Dennis -------------------------------------------------------------------------- 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]