In version 1.2, your answer is regrettably no. However you may have a fairly short job of it with the latest CVS version.
This is definitely a transport layer issue, and pertains directly to some of our recent development directions. Version 2.0 will include the concept of an XmlRpcTransport to be used by the XmlRpcClient. This transport can be implemented in different ways.
Currently in CVS there are two implementations of the XmlRpcTransport interface: LiteXmlRpcTransport and DefaultXmlRpcTransport. DefaultXmlRpcTransport uses java.net.URLConnection, and I do not know anything about timeouts with URLConnection. However, LiteXmlRpcTransport uses a raw java.net.Socket, which has a setSoTimeout() method. It would be trivial to modify this class to have a configurable timeout.
Finally, I have a working (but ugly) draft of an XmlRpcTransport using the Jakarta Commons HttpClient. This will support connection timeouts as well as many other more advanced HTTP features. Unfortunately, I am not ready for anyone to see this code as it is incomplete and needs to be refactored (I needed it for a project). Hopefully I will find time in the next couple of weeks to clean it up and add it to CVS.
--
Ryan Hoegg
ISIS Networks
http://www.isisnetworks.net
Jason Wyatt wrote:
Hi,
I used XML-RPC on a project recently and it was pretty good, except I had a problem with a very long timeout if the server went down. It seems the timeout was quick when we were developing under Windows (~30seconds) but when we deployed to Solaris the timeout was around 3-4 minutes.This was a bit of a problem because our client's remote devices which run the XML-RPC server may or may not be available at any given time.
We considered changing the kernel socket connect timeout settings on the XML-RPC client machine, but this seemed like a risky option as it could adversely affect other internet services. I had a look at hacking the XML_RPC client but gave up once I got down to http and couldn't see an obvious connect timeout setting.
Is there an easy programmatic way of changing the connection timeout that I am missing here? I would seriously like to use XML-PRC again on a new project, but the socket timeout issue is a vote against it.
Any help with this would be kindly appreciated.
Thanks in advance,
Jason.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Itree Software www.itree.com.au
Ph (02)42263454 Fax (02)42263193
-> Meeting your requirements.
-> Delivering on promises.
-> Pride in our work.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
