Hmmm, im not really sure whats happening. Are you making a lot of
simultaneous calls to the server? ON the surface, it looks like there
are too many socket connections, that they arent getting released by the
client.
Also check that your IOSP is calling raf.close() in its close statement.
Is "<NetcdfFileCache> maxFiles from 400 to 20" correct ??
Ken Knapp wrote:
New Ticket: HTTP file cache problem?
We're accessing files through TDS using a script (to access with our
IOSP stuff) and after reading numerous files (which was made possible by
changing <NetcdfFileCache> maxFiles from 400 to 20) we are encountering
a new problem that seems to be unrelated to HTTPFileCache (because it
happens well past the 40 file limit). Can you help?
Thx-
-Ken
Current Exception error is ...
OUCH! IOException: Too many open files
java.net.SocketException: Too many open files
at java.net.Socket.createImpl(Socket.java:388)
at java.net.Socket.connect(Socket.java:514)
at java.net.Socket.connect(Socket.java:466)
at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:365)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:477)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:214)
at sun.net.www.http.HttpClient.New(HttpClient.java:287)
at sun.net.www.http.HttpClient.New(HttpClient.java:299)
at
sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:796)
at
sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:748)
at
sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:673)
at dods.dap.DConnect.openConnection(DConnect.java:184)
at dods.dap.DConnect.getDataFromUrl(DConnect.java:455)
at dods.dap.DConnect.getData(DConnect.java:404)
at dods.servlet.dodsASCII.sendASCII(dodsASCII.java:91)
at dods.servlet.DODSServlet.doGetASC(DODSServlet.java:874)
at dods.servlet.DODSServlet.doGet(DODSServlet.java:1457)
at dods.servers.netcdf.NcDODSServlet.doGet(NcDODSServlet.java:271)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)