Веб-приложение Spring, tomcat, сеанс блокируется - PullRequest
0 голосов
/ 27 марта 2020

У меня есть веб-приложение на основе Spring, которое не представляет ничего особенного и имеет фильтр, который фильтрует запросы на основе URL-адреса, а приложение ведет себя по-разному в зависимости от IP-адреса и других параметров в URL-адресе.

приложение развернуто в экземпляре ec2 и стабильно почти все время, но внезапно выходит из строя

Я проверил приложение, просмотрев дамп потока, было 237 заблокированных потоков и трассировка стека выглядит следующим образом

http-nio-8080-exe c -1617

приоритет: 5 - threadId: 0x00007fbba4060000 - nativeId: 0x38d3 - nativeId (десятичный): 14547 - состояние: BLOCKED stackTrace: java .lang.Thread.State: BLOCKED (на мониторе объекта) в com.trivent.branding.ABCDEBrandingFilter.doFilter (ABCDEBrandingFilter. java: 118) - ожидание блокировки <0x000000061fdc1f00> (org. apache .catalina). session.StandardSessionFacade) в орг. apache .catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain. java: 239) в орг. apache .catalina. core.ApplicationFilterChain.doFilter (ApplicationFilterChain. java: 206) в орг. apache .catalina.core.StandardWrapperValve.invoke (StandardWrapperValve. java: 219) в орг. apache .Calal.xt.Core. вызывать (StandardContextValve. java: 106) в орг. apache .catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase. java: 502) в орг. apache .catalina.core.StandardHostValve.invoke (StandardHost. java: 142) в орг. apache .catalina.valves.ErrorReportValve.invoke (ErrorReportValve. java: 79) в орг. apache .catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve. java: 617) в орг. apache .catalina.core.StandardEngineValve.invoke (StandardEngineValve. java: 88) в орг. apache .catalina.connector.CoyoteAdapter.service (CoyoteAdapter. java: 518) в орг. . apache .coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor. java: 1091) в орг. apache .coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol. java: 668) в орг. apache .tomcat.util. net. NioEndpoint $ SocketProcessor.doRun (NioEndpoint. java: 1521) в орг. apache .tomcat.util. net .NioEndpoint $ SocketProcessor.run (NioEndpoint. java: 1478) - заблокировано <0x00000005eec14540> org. apache .tomcat.util. net .NioChannel) в java .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1142) в java .util.concurrent.ThreadPoolExecutor $ Worker. выполнить (ThreadPoolExecutor. java: 617) в орг. apache .tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread. java: 61) в java .lang.Thread.run (поток. java: 745) Заблокированные собственные синхронизаторы: - <0x000000062c2882e8> (a java .util.concurrent.ThreadPoolExecutor $ Worker)

и код в строке com.trivent.branding.ABCDEBrandingFilter.doFilter (ABCDEBrandingFilter. java: 118)

is this.session = httpRequest.getSession ();

Хотите знать, что происходит в фоновом режиме, заранее спасибо.

...