Несколько единиц персистентности в одной транзакции

Я пытаюсь реализовать транзакцию с 2 различными базами данных.
В настоящее время у меня есть единица постоянства для каждой базы данных, и я хотел записать в таблицу A, которая существует в схеме SA, и записать в таблицу B в схеме SB, в той же транзакции.

Я использую weblogic и eclipselink.

Я немного искал, но не нашел примера использования нескольких единиц персистентности в одной транзакции.

Может кто-нибудь сказать мне правильный способ сделать это?

благодарю вас

1 ответ

Решение

Выяснилось, что это должно быть реализовано с использованием источников данных XA.
Каждый блок персистентности должен использовать источник данных XA, а затем принять участие в двухфазной фиксации.

Теперь у меня есть:

  • 2 источника данных с драйвером: oracle.jdbc.xa.client.OracleXADataSource и учетные данные для входа в обе базы данных.
  • каждая единица персистентности вызывается на фасаде ejb, а эти фасады ejb - на глобальной транзакции.
Другие вопросы по тегам