2017-03-05 12 views
1

私はWebアプリケーションを持っていますが、問題はあります。リクエストは常にに保留されていますが、時にはの状態が保留されていますが、それは別の時に正常に機能します。それは「保留状態」が発生した後 enter image description here安らかなapiは常に保留状態にあり、tomcatはexcpetionを起こします

Tomcatはもはや機能しないだろうし、私はTomcatを再起動する必要があり、何でも大丈夫です:それはちょうど、以下の画像のように、事故です。私は、ログファイルに例外を見つけることができます:catalina.2017-03-05.loglocalhost.2017-03-05.log: 'ファイルに

05-Mar-2017 13:29:55.187 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [EducationCloud-Restful] is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation. Stack trace of request processing thread: 
sun.misc.Unsafe.park(Native Method) 
(...) 
05-Mar-2017 13:29:55.254 SEVERE [http-nio-8080-exec-10] org.apache.coyote.http11.Http11Processor.service Error processing request 
java.lang.NullPointerException 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:389) 
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110) 
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425) 
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) 

05-Mar-2017 13:29:55.274 SEVERE [http-nio-8080-exec-10] org.apache.coyote.http11.Http11Processor.endRequest Error finishing response 
java.lang.NullPointerException 
at org.apache.coyote.http11.Http11OutputBuffer.commit(Http11OutputBuffer.java:351) 
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:658) 
at org.apache.coyote.http11.Http11Processor.endRequest(Http11Processor.java:1786) 
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1149) 
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425) 
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) 

`localhost.2017-03-05.log: をファイルcatalina.2017-03-05.log

05-Mar-2017 13:29:55.253 SEVERE [http-nio-8080-exec-10] org.apache.catalina.core.StandardHostValve.invoke Exception Processing null 
java.lang.NullPointerException 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:236) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110) 
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425) 
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) 

誰どうしたらいいの?どうもありがとうございます!

関連: のTomcat v8.5.4

答えて

0

私はこの問題を解決してきた、その理由はdbcp2から、そのデフォルトの最大接続数は8でされているため、接続が8に達したときに、すべての要求が保留状態になります

BasicDataSource dataSource = new BasicDataSource() 
dataSource.setMaxTotal(-1); 
dataSource.setRemoveAbandonedOnBorrow(true); 
dataSource.setRemoveAbandonedTimeout(5); 

負の数(-1)を意味制限なし、と「5」の手段:この問題を解決するための方法は、我々は最高の合計を設定し、それが役に立たないとなったときにだけ、以下のように、接続を削除することができますということです5秒。

関連する問題