I always put an auto reconnecting / load balancing wrapper around the service.
Sent from my iPhone > On Dec 5, 2015, at 14:55, Bryan Buchanan <[email protected]> wrote: > > I have JavaFX app that is behaving differently on computers in my office > and at a customer site. > > I've created a simple test app which has a TextField and a Button. > > When the app starts, I do: > > Transport transport = new TSocket(host, port); > TProtocol protocol = new TBinaryProtocol(transport); > TestApplication.Client client = new TestApplication.Client(protocol); > > The app just sits there waiting for you to enter some text. When you click > the button, an RPC call is made to a remote server which reverses the > string, sends it back and it's re-displayed in the text field. > > In my office, I can leave this app running all day, enter some text, click > the button, it calls the server and all is well. At the customer site, > using exactly the same version of Linux and JDK and the same remote server, > if you leave the app running for about 1/2 an hour then enter some text and > click the button, one of two things happen. > > 1. it aborts with a Connection timed out error: > > Caused by: java.net.SocketException: Connection timed out > at java.net.SocketOutputStream.socketWrite0(Native Method) > at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) > at java.net.SocketOutputStream.write(SocketOutputStream.java:153) > at > java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) > at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) > at > org.apache.thrift.transport.TIOStreamTransport.flush(TIOStreamTransport.java:159) > > which is fine, although I don't know why (and it's what I'm trying to track > down). > > or > > 2. the app just hangs. When you click the button, the app freezes. In the > TestApplication.Client class the last thing I see is the message "in > reverse" below: > > public String reverse(String message) throws BJBException, > org.apache.thrift.TException > { > System.err.println("in reverse"); > send_reverse(message); > System.err.println("sent message, wait for reply"); > return recv_reverse(); > } > > then after a bit, the Linux Window Manager pops up and says the app is > unresponsive and do you want to kill it. It's obviously in some tight loop > somewhere in the code in libthrift-0.9.3.jar. > > I'm going to create a simple "C" language client to see if the same > behaviour occurs, but I'm wondering if anyone has any hints at what I > should be looking for or changing ? > > Thanks.
