Настройка координации кеша eclipselink в Payara

У меня пайара 5.201. У меня есть два экземпляра, работающих в докере в одной сети. Payara использует eclipselink 2.7.4.

Я использовал настройки, как описано здесь.

Я включил и запустил сетку hazelcast в обоих экземплярах payara.

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

Когда я устанавливаю какое-то значение в экземпляре один, я ожидаю, что получение экземпляра два покажет ту же информацию, но это не так.

Что я делаю не так?

См. здесь тестовый проект, который вы можете запустить/отладить.


person thehpi    schedule 17.09.2020    source источник
comment
Не так много, чтобы продолжать. Находятся ли данные в базе данных, включен ли общий кеш (именно для этого будет использоваться приведение орехового цвета), отправляются и принимаются ли сообщения координации кеша или даже то, как вы загружаете данные из долгоживущего EntityManager (который поддерживает свою собственный кеш, предназначенный для использования в рамках одной транзакции). Вам нужно будет отладить это гораздо дальше, чтобы кто-нибудь мог даже догадаться, что может произойти.   -  person Chris    schedule 17.09.2020
comment
Привет @Cris, я только что добавил тестовый проект github, чтобы поиграть с ним.   -  person thehpi    schedule 18.09.2020


Ответы (1)


Проблема устранена, проблема заключалась в том, что режим обнаружения hazelcast по умолчанию является «доменом» на сервере payara (это многоадресный режим в payara-micro), что имеет смысл, поскольку обычно используется кластер payara.

Но в моем случае кластера нет, а просто два экземпляра payara (DAS). Таким образом, установка режима кластера hazelcast на многоадресную передачу решила проблему.

В этом случае это работает, потому что оба экземпляра Docker запускаются с помощью docker-compose и используют одну и ту же сеть, поэтому работает многоадресная рассылка.

Я обновил репозиторий github. Проверьте это.

person thehpi    schedule 06.02.2021