Thanks Jim. One problem I see with your solution is that it retries on 
*every* exception, which is not what we want (or do we?). I'll give it a 
try.

Hannes


Jim Redman wrote:

>
> 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
>



Reply via email to