Hello Any help/hint/advice with this would be very much appreciative Here are the details: I have 2 modules. Both behave as server/client. Each runs in its own jvm, on different machines. Lets say Module A running on machine Z and Module B running on machine Y. These modules talk to each other through the RMI interface. Each machine has a registry running at default port, so that each module is registered there. Module A generates request and sends it module B for processing. After module B finished processing the request it repays to Module B by sending it a status message. This setup is working fine for couple of days, but eventually it throws and StackOverflowError (exception) which basically kills the rmi communication and forces me to restart module B (the exception always happens on sending reply from B to A). So if i just restart B, without touching A, everything continues to work for another couple days. here is an error i am getting (it is from the log of a module B, which is called DSLAM)
Process completed. Success Sending response to the Output Queue java.lang.StackOverflowError at java.util.Hashtable.get(Compiled Code) at java.util.Properties.getProperty(Compiled Code) at java.util.Properties.getProperty(Compiled Code) at java.util.Properties.getProperty(Compiled Code) at java.util.Properties.getProperty(Compiled Code) at java.util.Properties.getProperty(Compiled Code) at java.util.Properties.getProperty(Compiled Code) at java.util.Properties.getProperty(Compiled Code) at java.util.Properties.getProperty(Compiled Code) at java.util.Properties.getProperty(Compiled Code) .... A lot of this at java.util.Properties.getProperty(Compiled Code) at java.util.Properties.getProperty(Compiled Code) at java.lang.System.getProperty(Compiled Code) at sun.security.action.GetPropertyAction.run(Compiled Code) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessController.doPrivileged(Compiled Code) at java.net.PlainSocketImpl.usingSocks(Compiled Code) at java.net.PlainSocketImpl.connectToAddress(Compiled Code) at java.net.PlainSocketImpl.connect(Compiled Code) at java.net.Socket.<init>(Compiled Code) at java.net.Socket.<init>(Compiled Code) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Compiled Code) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Compiled Code) at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Compiled Code) at sun.rmi.transport.tcp.TCPChannel.createConnection(Compiled Code) at sun.rmi.transport.tcp.TCPChannel.newConnection(Compiled Code) at sun.rmi.server.UnicastRef.invoke(Compiled Code) at com.uswest.ums.activator.util.RBQueue_Stub.enqueue(Compiled Code) at com.uswest.ums.config.dslam.npa.DSLAMNI2.activation(Compiled Code) at com.uswest.ums.config.dslam.DSLAMActivator.run(Compiled Code) based on this log, the reply message was generated o.k. and module B was trying to send it back, unfortunately module A have never got it. The exception occurred in rmi space, (at least this is that it looks like to me). I am using java 1.2.1 Thank you
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.