Guys,

 In followup to my prior message, here is the full stack trace of the error
that I am receiving:

java.net.SocketTimeoutException: Read timed out
        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)
        at 
org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77)
        at 
org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105)
        at 
org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:11
15)
        at 
org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.j
ava:1832)
        at 
org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.jav
a:1590)
        at 
org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995
)
        at 
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethod
Director.java:397)
        at 
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDir
ector.java:170)
        at 
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
        at 
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
        at 
org.apache.xmlrpc.CommonsXmlRpcTransport.sendXmlRpc(CommonsXmlRpcTransport.j
ava:111)
        at 
org.apache.xmlrpc.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:72)
        at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:194)
        at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:185)
        at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:178)
        at 
gov.nasa.jpl.oodt.cas.filemgr.system.XmlRpcFileManagerClient.ingestProduct(X
mlRpcFileManagerClient.java:493)


Line 493 in my XmlRpcFileManagerClient code is where I make the call to:

 productId = (String)fClient.execute("filemgr.ingestProduct",
                   argList);


Any ideas? Could it be a problem with the amount of allowed open sockets on
of my computer nodes? As I mentioned, the error doesn't manifest when I run
the File Manager client and server on the same powerful (4x Xeon processor,
head node in a cluster) host, only when they are run on different hosts (the
File Manager server on the powerful host, and the File Manager client on a
less powerful, dual CPU, compute node in my cluster).

Thanks, again.

Cheers,
  Chris Mattmann



On 5/9/06 9:05 PM, "Chris Mattmann" <[EMAIL PROTECTED]> wrote:

> Hi guys,
> 
>   I'm trying to figure out a pretty frustrating problem I'm having with the
> 2.1-dev branch of xmlrpc. I have some simple code in a server component
> exposed through the XmlRpc WebServer class that does an ingest of a file and
> some metadata into an underlying catalog. The code looks something to the
> effect of:
> 
> public class MyServer{
> 
>   public MyServer(int port){
>     fWebServerPort = port;
> 
>         // start up the web server
>         fWebServer = new WebServer(fWebServerPort);
>         fWebServer.addHandler("filemgr", this);
>         fWebServer.start();
>    }
> 
> public synchronized String ingestProduct(params...){
>      //add catalog data
>      //transfer file
>     return fileId;
> }
> 
> }
> 
> In my client application, I call the ingestMethod, and I am noticing under
> some light stress (e.g., most likely between 30-40 communications,
> potentially simultaneous), that my MyServer class fails to respond to the
> client's invocation of it. My Client class looks like:
> 
> public class MyClient{
>     public XmlRpcClient fClient = null;
> 
>   public MyClient(URL serverUrl){
>    //init fClient to point to the XmlRpcServer
>     fClient = new XmlRpcClient(new URL(serverUrl));
>   }
> 
>    public String ingestCall(params...){
>       String productId = nulll;
>      Vector argList = new Vector();
>       argList.addAll(params);
>        try {
>            productId = (String)fClient.execute("filemgr.ingestProduct",
>                    argList);
>        } catch (XmlRpcException e) {
>            e.printStackTrace();
>            throw new Exception(e.getMessage());
>        } catch (IOException e) {
>                e.printStackTrace();
>            throw new Exception(e.getMessage());
>        }  
> }
> 
> }
> 
> The exception that is being thrown is the IOException, and it throws back:
> 
> java.lang.Exception: Read timed out
> 
> It throws back the regular Exception because I wrapped the IOException in
> the regular exception class. In any case, the method call to fClient.execute
> never returns and an exception is thrown. I've racked my brain trying to
> figure out why this happens. The weirder thing is, if I run the client and
> the server on the same machine, the error goes away. It's when I distribute
> the client and server to different machines that this error springs up.
> Could anyone suggest why this is happening, and furthermore, are there any
> ways to potentially fix this problem? I seem to only experience it under
> heavy stress to the Server class. Any help would be greatly appreciated.
> 
> Thanks!
> 
> Cheers,
>   Chris
>      
> 
> 


Reply via email to