XA не XA источник данных в WebSphere

В настоящее время я работаю над веб-приложением, работающим на взаимной основе WebSphere. Это приложение использует источник данных (совместно используемый с другими приложениями) и постоянный таймер EJB.

Поскольку таймер EJB является постоянным, WebSphere использует свой собственный источник данных для сохранения состояния таймера EJB в базе данных. (Используется для внутреннего управления WebSphere)

EJB Timer приложения вызывает DAO мой "метод создания".

Все управляются с помощью транзакций JTA.

Я хотел бы найти лучшую "стратегию" для применения в отношении источников данных. После нескольких поисков в интернете я все еще в неведении.

Как настроить источники данных?

  • Следует ли использовать два источника данных в XA?
  • Можно ли использовать источник данных не-XA для управления моим таймером EJB (WebSphere) и источником данных XA для обработки, выполняемой в моем EJB (метод create)?

На мой взгляд, все источники данных должны быть в не XA...

Какова лучшая практика, когда мы используем источник данных во взаимной среде, необходимо ли использовать один источник данных (указывающий на одну и ту же БД) на приложение или иметь только один источник данных на БД?

Большое спасибо:)

1 ответ

Решение

Я не уверен, что вы подразумеваете под "взаимной" WebSphere, но я предполагаю, что вы имеете в виду экземпляр сервера приложений с несколькими запущенными приложениями. Ваши вопросы:

Следует ли использовать два источника данных в XA? Не обязательно два источника данных, но два или более ресурса в целом. Ресурсы, отличные от источников данных, могут участвовать в транзакциях XA. В общем, если транзакция не включает несколько ресурсов базы данных, вы хотите использовать источник данных не-XA для выполнения этой транзакции. Можно ли использовать источник данных не-XA для управления моим таймером EJB и источник данных XA для обработки, выполняемой в моем EJB? Да, это. Вы также заявили, что, поскольку таймер EJB является постоянным, WebSphere использует свой собственный источник данных... Это правда, что источник данных по умолчанию используется по умолчанию, но вы можете настроить службу таймера EJB с другим источником данных. Необходимо ли использовать один источник данных (указывающий на одну и ту же БД) на приложение или иметь только один источник данных на БД? Не обязательно использовать DS для каждого приложения, но это может быть необходимо в зависимости от ваших требований. Из-за сложности корпоративной среды не существует простых рекомендаций. Очевидно, что если ваши данные хранятся в нескольких бэкэндах, вам понадобится несколько источников данных. Если все ваши данные хранятся в одном бэкэнде, использование одного DS может иметь смысл.

Другие вопросы по тегам