jberet, один экземпляр wildfly, несколько источников данных: могу ли я использовать более одного репозитория заданий?
В настоящее время у нас есть набор сервисов, каждый из которых работает в соответствующем экземпляре wildfly 9.0. Некоторые из них имеют пакетные задания, реализованные с использованием jberet 1.2.0.
Каждый экземпляр wildfly имеет один источник данных (jdbc, oracle) для службы и один репозиторий заданий для jberet. В настоящее время таблицы jberet помещаются в базу данных отдельного хранилища данных этого экземпляра wildfly.
Теперь мы перемещаем все пакетные задания в отдельный экземпляр wildfly, чтобы снять нагрузку, генерируемую пакетами, с других экземпляров wildfly.
Итак, теперь у нас есть один standalone.xml с x источниками данных (по одному на сервис).
Какова наилучшая практика для определения заданий / хранилищ заданий?
- один отдельный репозиторий заданий, который указывает на источник данных, который содержит только материал jberet (новая БД)
- один репозиторий заданий для каждой службы, указывающий на источник данных этой службы (это вообще возможно? Как? Из https://github.com/fcorneli/jberet-eap6/blob/master/eap6-batch/src/main/resources/schema/wildfly-batch_1_0.xsd Я думаю, что это невозможно / предназначено.)
- данные jberet попадают в одну из существующих баз данных одной из служб (как выбрать какую? Загрузка, размер?)
1 ответ
Если у вас только один развернутый war-файл: В настоящее время у вас может быть только один репозиторий заданий.
Если у вас есть несколько war-файлов, развернутых в одном экземпляре Wildfly: Если вы можете использовать WildFly 10 для пакетных приложений, вы можете использоватьjboss-all.xml
дескриптор развертывания для определения различных репозиториев заданий для каждого развертывания.
Если вы хотите, чтобы они все были добавлены в одну базу данных, есть APPLICATIONNAME
поле в JOB_INSTANCE
поле, если вы хотите, чтобы увидеть, из какого приложения они пришли. Имя определяется из java:app/AppName
, Это может помочь вам отфильтровать, какие приложения вы просматриваете.