Поскольку TransactionManager не имеет возможности зарегистрировать менеджер XAResource, чтобы он мог подключать XAResources в будущих транзакциях.
Единственный способ решить эту проблему - обернуть дескриптор заинтересованного интерфейса сервиса.
Каждый метод интерфейса выполняет следующие действия:
- Проверьте, присутствует ли передача
- выяснить, если ручка для этого TX
- Если еще не участвует, подключите его XAResource, используя Transaction.enlist (XAResource)
- Регистрирует обратный вызов для включения очистки с использованием Transaction.registerSynchronization (Synchronization).
Это кажется разумной стратегией?