Hi,

we have an environment where multiple instances of XmlRpcClient in 
different JVMs on our side call a single XML-RPC server on another host. 
We have at least tens of thousands of calls per day, even hundreds of thousands. 

We are using Jakarta's XML-RPC 1.1.

Problem:

sometimes (rarely, maybe 5-10 times per day) our client gets stuck. Here's
the interesting part of thread dump:

        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
        - locked <e17b45e0> (a java.io.BufferedInputStream)
        at 
org.apache.xmlrpc.XmlRpcClientLite$HttpClient.readLine(XmlRpcClientLite.java)
        at 
org.apache.xmlrpc.XmlRpcClientLite$HttpClient.sendRequest(XmlRpcClientLite.java)
        at 
org.apache.xmlrpc.XmlRpcClientLite$LiteWorker.execute(XmlRpcClientLite.java)


What I mean with getting stuck is that just call never returns. We are 
running  this on live environment, so I don't have a possibility to check 
if it really doesn't _ever_ return but so far we've seen situations of call 
taking 10 hours and still not returning (at which point, we've rebooted 
the server). 

Any ideas? I know there is no timeouts in Jakarta's XML-RPC 1.1, but 
really, is it normal that call can be blocked for this long? AFAIK, there 
is no way to interrupt a call - is there?

BR,
  Janne


Reply via email to