У меня есть производитель pojo, который создает MyResourceManager.
@ TraderResouceManager @RequestScoped public MyResourceManager () {... ... *
MyResourceManger внедряется вSLSB
@ inject @TraderDB private MyResourceManager rm;
Распределитель представляет собой следующее
публичное закрытие void (@Disposes @TraderResouceManager MyResourceManagerrm) {rm.close ();}
Вопрос
Когда выполняется close ()?
Это перед закрытием транзакции или после закрытия транзакции?
РЕДАКТИРОВАТЬ: Вопрос, возможно, нуждается в дополнительном объяснении.Давайте возьмем аналогию с подключением к базе данных.
Я создаю @producer с @RequestScoped, используя pojo, который создает новое соединение для каждого запроса.
Мне нужно удалить соединениев конце запроса.Это соединение используется другими компонентами (на данный момент SLSB).В данном запросе может быть задействовано много bean-компонентов внутри транзакции.Следовательно, дополнительно мне нужно закрыть соединение только после того, как все транзакции будут логически закрыты.
Вопрос Смогу ли я добиться такого поведения с помощью приведенного выше кода, когда я использую транзакции, управляемые контейнером?