Мы находимся в процессе перехода от JBoss 6 к JBoss 7. Характер нашего приложения имеет отдельный экземпляр базы данных для каждого клиента, а также базовую конфигурационную базу данных, общую для всех клиентов. У нас часто есть EJB-код, который, по крайней мере, будет ссылаться на базовую базу данных, а также на отдельные данные клиента в один звонок и даже на некоторые общие фоновые процессы, которые проходят через всех клиентов.
В JBoss 6 это было обработано без проблем, установив метод с атрибутом транзакции NOT_SUPPORTED. Однако JBoss 7 жалуется на это со следующей ошибкой:
ARJUNA012140: добавление нескольких последних ресурсов запрещено. Попытка Добавить LastResourceRecord (XAOnePhaseResource (LocalXAResourceImpl @74bec54d [connectionListener = d3ce980 connectionManager = 25b47a05 warned = false currentXid = < formatId = сто тридцать одна тысяча семьдесят семь, gtrid_length = 29, bqual_length = 36, tx_uid = 0: ffff0a2c28d1: -5a4c1f9a: 504689c9: 11, node_name = 1, branch_uid = 0: ffff0a2c28d1: -5a4c1f9a: 504689c9: 14, subordinatenodename = null, eis_name = unknown eis name > ])), но уже иметь LastResourceRecord (XAOnePhaseResource (LocalXAResourceImpl @518d0191 [connectionListener = 1a05d94a connectionManager = 135f1cfe warned = false currentXid = < formatId = сто тридцать одна тысяча семьдесят семь, gtrid_length = 29, bqual_length = 36, tx_uid = 0: ffff0a2c28d1: -5a4c1f9a: 504689c9: 11, node_name = 1, branch_uid = 0: ffff0a2c28d1: -5a4c1f9a: 504689c9: 13, subordinatenodename = null, eis_name = unknown eis name > ]))
Как мы можем обойти эту проблему без переноса каждого вызова в разные базы данных в отдельном вызове и транзакции EJB. Есть ли способ фактически отключить управление транзакциями JBoss в вызове EJB или что-то подобное?
Примечание. Этот вопрос был изменен после того, как баунти началось на основе дополнительного открытия, чтобы заострить внимание на конкретной проблеме и удалить другие возможности, которые были исключены.