Я пытаюсь запустить свое приложение на 2 узлах Wildfly 16, работающих в автономном режиме, используя конфигурацию standalone-full-ha.xml
. Когда запускается 2-й узел, первый пытается распределить/сбалансировать кэш web
по умолчанию для нового узла.
Когда он это делает, я вижу следующее сообщение об ошибке в журнале на первом узле, а второй узел не запускается:
13:45:48,487 ERROR [org.infinispan.remoting.rpc.RpcManagerImpl] (transport-thread--p18-t8) ISPN000073: Unexpected error while replicating: org.infinispan.commons.marshall.NotSerializableException: org.wildfly.transaction.client.ContextTransactionManager
Caused by: an exception which occurred:
in field com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorBase.transactionManager
in object com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorRequired@73962bdb
in field org.jboss.weld.contexts.SerializableContextualInstanceImpl.instance
in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@333ebcb5
in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@333ebcb5
in field java.util.Collections$SynchronizedCollection.c
in object java.util.Collections$SynchronizedList@333ebcd4
in field org.jboss.weld.contexts.CreationalContextImpl.dependentInstances
in object org.jboss.weld.contexts.CreationalContextImpl@4dc7055b
in field org.jboss.weld.contexts.SerializableContextualInstanceImpl.creationalContext
in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@57504e37
in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@57504e37
13:45:50,718 ERROR [org.infinispan.statetransfer.OutboundTransferTask] (transport-thread--p18-t8) Failed to send entries to node node2: org.wildfly.transaction.client.ContextTransactionManager: org.infinispan.commons.marshall.NotSerializableException: org.wildfly.transaction.client.ContextTransactionManager
Caused by: an exception which occurred:
in field com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorBase.transactionManager
in object com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorRequired@73962bdb
in field org.jboss.weld.contexts.SerializableContextualInstanceImpl.instance
in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@333ebcb5
in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@333ebcb5
in field java.util.Collections$SynchronizedCollection.c
in object java.util.Collections$SynchronizedList@333ebcd4
in field org.jboss.weld.contexts.CreationalContextImpl.dependentInstances
in object org.jboss.weld.contexts.CreationalContextImpl@4dc7055b
in field org.jboss.weld.contexts.SerializableContextualInstanceImpl.creationalContext
in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@57504e37
in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@57504e37
Некоторые другие вещи, чтобы отметить:
- Это не удается при запуске одной из моих WAR, которые распространяются внутри EAR, но не двух других WAR, которые также развернуты в EAR.
- Мой
web.xml
помечен как<distributable/>
для всех 3 WAR - Мои другие кеши, кажется, реплицируются просто отлично
Я не могу понять, где используется ContextTransactionManager
или почему он сериализуется в кэш сеанса. Я предполагаю, что это может быть где-то в моем коде, но я не могу понять, где даже начать искать. Любая помощь будет оценена по достоинству!
Обновление (28.05.2019): вот пара снимков экрана из консоли управления, на которых показаны 2 сеанса, которые создаются при запуске (мы используем JSP в нашем веб-приложении, и у нас есть служба запуска, которая работает для предварительной компиляции всех файлов JSP):