Я создал веб-приложение с весенней загрузкой и развернул его в контейнере tomcat. Приложение подключается к mongoDB
с помощью асинхронных подключений. Я использую для этого библиотеку mongodb-driver-async
.
При запуске все работает нормально. Но как только нагрузка увеличивается, в соединениях с БД отображается следующее исключение:
org.springframework.web.context.request.async.AsyncRequestTimeoutException: null
at org.springframework.web.context.request.async.TimeoutDeferredResultProcessingInterceptor.handleTimeout(TimeoutDeferredResultProcessingInterceptor.java:42)
at org.springframework.web.context.request.async.DeferredResultInterceptorChain.triggerAfterTimeout(DeferredResultInterceptorChain.java:75)
at org.springframework.web.context.request.async.WebAsyncManager$5.run(WebAsyncManager.java:392)
at org.springframework.web.context.request.async.StandardServletAsyncWebRequest.onTimeout(StandardServletAsyncWebRequest.java:143)
at org.apache.catalina.core.AsyncListenerWrapper.fireOnTimeout(AsyncListenerWrapper.java:44)
at org.apache.catalina.core.AsyncContextImpl.timeout(AsyncContextImpl.java:131)
at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:157)
Я использую следующие версии программного обеспечения:
- Весенняя загрузка -> 1.5.4.РЕЛИЗ
- Tomcat (установлен как отдельный двоичный файл) -> apache-tomcat-8.5.37
- Версия БД Монго: v3.4.10
- mongodb-драйвер-асинхронный: 3.4.2
Как только я перезапускаю службу tomcat, все начинает работать нормально.
Помогите пожалуйста, в чем может быть причина этой проблемы.
P.S.: Я использую DeferredResult
и CompletableFuture для создания асинхронного REST API.
Я также пытался использовать spring.mvc.async.request-timeout
в приложении и настроил asynTimeout
в tomcat. Но все еще получаю ту же ошибку.