Ошибка при получении соединений в jboss с несколькими базами данных, даже если нет транзакции
Мы находимся в процессе обновления с JBoss 6 до JBoss 7. Характер нашего приложения имеет отдельный экземпляр базы данных для каждого клиента, а также базу данных конфигурации ядра, общую для всех клиентов. У нас часто есть код EJB, который, по крайней мере, ссылается на основную базу данных плюс данные отдельного клиента за один вызов, и даже некоторые общие фоновые процессы, которые проходят через всех клиентов.
В JBoss 6 это было обработано без проблем путем установки метода с атрибутом транзакции NOT_SUPPORTED. Однако JBoss 7 жалуется на это со следующей ошибкой:
ARJUNA012140: Adding multiple last resources is disallowed. Trying to add LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl@74bec54d[connectionListener=d3ce980 connectionManager=25b47a05 warned=false currentXid=< formatId=131077, 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 >])), but already have LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl@518d0191[connectionListener=1a05d94a connectionManager=135f1cfe warned=false currentXid=< formatId=131077, 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 или что-то подобное?
Note: This question was modified after the bounty started based on additional discovery to sharpen the focus on the specific problem and remove other possibilities that were excluded.