The socket timeout indicate the connection has been established but the reply couldn't be processed in time. How many Threads did you allow to the service ?
2006/5/10, Chris Mattmann <[EMAIL PROTECTED]>:
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 > > >