веб-приложение в среде Linux выдает javax.ejb.ConcurrentAccessTimeoutException Невозможно получить блокировку чтения для одноэлементного метода ejb - PullRequest
0 голосов
/ 26 апреля 2019

Я развернул веб-приложение EJB на tomcat, машине linux.Это приложение подключается к AWS RDS через поиск JNDI, представленный в классе @singleton ejb.Каждую минуту мое приложение печатает содержимое БД в консоли.При первоначальном запуске приложения соединение с БД осуществляется один раз с использованием метода @PostConstruct.После отработки отказа RDS подключение к базе данных RDS больше не доступно.Теперь я получаю следующую ошибку с трассировкой стека каждую минуту вместо содержимого БД в консоли:

Только в Linux Enivironment Эта ошибка выдается почти на 30 минут (@Timeout методзапланировано запускать каждую минуту для отображения содержимого БД).Через 30 минут все в порядке и приложение работает нормально.

** В Windows ** после отработки отказа приложение работает нормально (т. Е. Через 2 минуты). Обычно при сбое RDS происходит сбой через 2 минуты !!

javax.ejb.ConcurrentAccessTimeoutException: Unable to get read lock on getABC()' method for: com.test.TestEJB

 at org.apache.openejb.core.singleton.SingletonContainer.aquireLock(SingletonContainer.java:348)
        at org.apache.openejb.core.singleton.SingletonContainer._invoke(SingletonContainer.java:253)
        at org.apache.openejb.core.singleton.SingletonContainer.invoke(SingletonContainer.java:221)
        at org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:265)
        at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:260)
        at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:89)

Could this the issue be related to OS or anything else!??
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...