The code in the exception clause of:
public void write (byte[] request) throws IOException
in XmlRpcClientLite does not seem to be effective in handling keep-alive
timeouts. The solution that works for me is to repeat the call to:
Object execute (String method,
Vector params) throws XmlRpcException, IOException
{
the code we've been using looks like this:
public Object execute (String method, Vector params)
throws XmlRpcException, IOException
{
try {
return executeInternal(method, params);
} catch (Exception e) {
System.err.println("Warning: Execute Internal (" + method + ") -
" + e.getMessage() + " transient error - retrying");
}
// we'll give it two attempts, if it fails the first time it will
// come here for a retry
client = null; // make sure
return executeInternal(method, params);
}
public Object executeInternal (String method, Vector params)
<<<<----- the old execute method
throws XmlRpcException, IOException
{
Unless someone has a better solution, I'd like to get the code into the
distro so that I don't have to modify future releases of the library.
Jim
--
Jim Redman
(505) 662 5156
http://www.ergotech.com