Hi Henri, > 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 ?
I'm not sure: I guess the default. How do I set the number of threads to allow to the service? I'm using the WebServer class to expose my File Manager server as an XML-RPC service. Is there any operations that will allow me to up the amount of threads on the WebServer class? Thanks for your help. Cheers, Chris > > > > 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 >>> >>> >>> >> >> >> ______________________________________________ Chris A. Mattmann [EMAIL PROTECTED] Staff Member Modeling and Data Management Systems Section (387) Data Management Systems and Technologies Group _________________________________________________ Jet Propulsion Laboratory Pasadena, CA Office: 171-266B Mailstop: 171-246 Phone: 818-354-8810 _______________________________________________________ Disclaimer: The opinions presented within are my own and do not reflect those of either NASA, JPL, or the California Institute of Technology.