Разница между DefaultJMSConnectionFactory и JmsXA

По умолчанию Wildfly 10 настраивает фабрику объединенных соединений как часть подсистемы JMS с двумя записями.

      <pooled-connection-factory name="activemq-ra"
                        transaction="xa"
                        connectors="in-vm"
                        entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory"/>

Можно внедрить фабрику соединений следующим образом:

@Resource(mappedName = "java:jboss/DefaultJMSConnectionFactory")
private ConnectionFactory connectionFactory;

В чем разница между этим и выбором другой записи; java:/JmsXA?


person chrisjleu    schedule 10.10.2016    source источник


Ответы (1)


Нет никакой разницы, это дополнительная запись JNDI, соответствующая спецификации JMS 2 по умолчанию ConnectionFactory имя: java:comp/DefaultJMSConnectionFactory

Вы должны разрешить это, используя это имя.

Начиная с JMS 2.0, фабрика соединений JMS по умолчанию доступна для приложения EE под именем JNDI java:comp/DefaultJMSConnectionFactory. Подсистема обмена сообщениями WildFly определяет фабрику объединенных соединений, которая используется для обеспечения этой фабрики соединений по умолчанию. Любое изменение параметра в этой фабрике объединенных соединений будет учитываться любым приложением EE, ищущим поставщика JMS по умолчанию под именем JNDI java:comp/DefaultJMSConnectionFactory.

См. https://docs.jboss.org/author/display/WFLY9/Messaging+configuration

Другой - просто устаревший идентификатор:

Уровень JCA перехватывает вызовы createConnection() и createSession() и обеспечивает уровень кэширования (среди прочего). Поэтому, когда вы вызываете createConnection() или createSession(), то в большинстве случаев на самом деле не вызывается фактическая реализация JMS для фактического создания нового соединения JMS или сеанса JMS, он просто возвращает один из своего собственного внутреннего кеша - другими словами, Уровень JCA объединяет соединения JMS и сеансы JMS.

На сервере приложений JBoss «специальная» фабрика соединений JMS, которая обеспечивает кэширование JCA, обычно доступна по адресу java:/JmsXA в jndi.

См. https://developer.jboss.org/wiki/ShouldICacheJMSConnectionsAndJMSSessions.

person Gab    schedule 08.03.2018