Hazelcast и Payara 5 — пытается закрыть eventManager, если hazelcast используется в контексте транзакции.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Hazelcast и Payara 5 — пытается закрыть eventManager, если hazelcast используется в контексте транзакции.

Сообщение Гость »


В настоящее время мы пытаемся использовать Hazelcast в нашем приложении Jakarta EE 8, работающем на Payara 5.2022.x. У нас возникают огромные проблемы при попытке доступа к экземплярам IMap при использовании hazelcast любым методом, даже удаленным в контексте транзакций. Похоже, проблема в том, что арендатор Payara, который является пользователем в сочетании с Hazelcast, пытается снести все после каждого доступа к карте Hazelcast. Почти в 100% случаев это не удается, в результате чего получается такой стек:

[2023-08-18T08:42:24.310+0200] [Payara 5.2022.2] [SCHWERWIEGEND] [] [com.hazelcast.spi.impl.operationexecutor.impl.OperationExecutorImpl] [tid: _ThreadID= 72 _ThreadName=hz.priceless_meitner.partition-operation.thread-9] [timeMillis: 1692340944310] [levelValue: 1000] [[ [192.168.100.70]:4900 [разработка] [4.2] Не удалось обработать: com.hazelcast.map.impl.operation.PutOperation{serviceName='hz:impl:mapService',identHash=353117872, PartitionId=105, ReplicaIndex=0 , callId=-1914, invoctionTime=1692340944309 (2023-08-18 08:42:24.309), waitTimeout=-1, callTimeout=60000, tenantControl=fish.payara.nucleus.hazelcast.PayaraHazelcastTenant@30695580, name=statefulRoomSOSChangeListenerM ap} вкл. : hz.priceless_meitner.partition-operation.thread-9 java.lang.IllegalStateException: попытка выполнить операцию над закрытым EntityManager. в org.eclipse.persistence.internal.jpa.EntityManagerImpl.verifyOpen(EntityManagerImpl.java:2067) в org.eclipse.persistence.internal.jpa.EntityManagerImpl.close(EntityManagerImpl.java:1908) по адресу com.sun.enterprise.container.common.impl.EntityManagerWrapper$NonTxEMCleaner.beforePostInvoke(EntityManagerWrapper.java:1241) в org.glassfish.api.invoke.InvoctionManagerImpl$ListComponentInvocateHandler.lambda$beforePostInvoke$2(InvocatageManagerImpl.java:430) в java.base/java.util.ArrayList.forEach(ArrayList.java:1511) в org.glassfish.api.invoke.InvocatageManagerImpl$ListComponentInvocateHandler.beforePostInvoke(IndictionManagerImpl.java:430) в org.glassfish.api.invoke.InvocatageManagerImpl.postInvoke(IndictionManagerImpl.java:198) в fish.payara.appserver.context.ContextImpl$Context.close(ContextImpl.java:61) в fish.payara.appserver.context.ContextImpl$RequestContext.close(ContextImpl.java:126) на com.hazelcast.spi.impl.operationservice.Operation.popThreadContext(Operation.java:822) на com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:258) на com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:213) в com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:175) в com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:139) в com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.executeRun (OperationThread.java:123) на com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:102) ]] Во многих случаях мне удавалось смягчить проблему, переключившись с javax.enterprise.concurrent.ManagedScheduledExecutorService для использования обычного Executors.newSingleThreadScheduledExecutor(). Иногда мне удавалось аннотировать включающий метод с помощью @Transactional(TxType.NOT_SUPPORTED).

Но это не может быть правильным способом. Должен быть способ использовать Hazelcast в Payara, не избегая при этом магии транзакционных контейнеров.

Будем благодарны за любую помощь.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему токен JWT не используется для авторизации в Payara micro
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Почему токен JWT не используется для авторизации в Payara micro
    Anonymous » » в форуме JAVA
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Экземпляр Hazelcast не активен! (com.hazelcast.core.HazelcastInstanceNotActiveException). Полезная нагрузка сообщения им
    Anonymous » » в форуме JAVA
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Ограничить клиентам hazelcast подключение к кластеру/экземпляру hazelcast.
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Ограничить клиентам hazelcast подключение к кластеру/экземпляру hazelcast.
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»