Hi all Hoping someone can shed some light on a little puzzle I have. This may be more a Java programming problem than a Tomcat problem so apologies if that is the case but it's specific to a system running on Tomcat so I'm asking here too. One of our servlets is opening a URL connection to hit an external URL, the external URL can sometimes take a while to respond and when that happens the URL connection throws a socket timeout exception (see the stack trace below). What I can't work out is what determines how long the connection waits before it times-out, we don't set anything explicitly in our code and it doesn't seem to be related to the servlet timeout in the connector, does anyone know what determines the timeout length and how it can be changed? The code is simply -
public void outputUrl(OutputStream p_out, String p_url) { try { URL t_url = new URL(p_url); InputStream t_inputStream = t_url.openStream(); // Read from the input stream, and write to the output stream byte[] l_buffer = new byte[10]; // buffer holding bytes to be transferred int l_nbytes = 0; // Number of bytes read while ((l_nbytes = t_inputStream.read(l_buffer)) != -1) p_out.write(l_buffer,0,l_nbytes); t_inputStream.close(); } catch (Exception e) { nsglog.error(String.valueOf(e), e); } } The error trace is - 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:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) at java.io.BufferedInputStream.read(BufferedInputStream.java:313) at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:659) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:604) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:961) at java.net.URL.openStream(URL.java:1007) at ep.ext.outputUrl(ext.java:446) So it's the attempt to open the input stream on the URL that is timing out, what governs that timeout? -- Chris Mannion iCasework and LocalAlert implementation team 0208 144 4416 --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org