Ответ 1
@Jeffrey Knight: Позвольте мне попытаться разъяснить, основываясь на моем опыте.
Мы понимаем, что MDB beans потребляет входящие сообщения. Теперь необходимо указать, какие сообщения, из какого адресата хочет потреблять конкретный MDB.
MDB - это в основном конечная точка сообщения.
До MDC, совместимых с JCA:
поток в websphere был: -
входящее сообщение → прослушивается слушателем сообщения → прослушиватель порты → доставить в MDB
Таким образом, разработчик должен создать MDB и указать детали адресата сообщения в ejb-jar.xml следующим образом: -
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
<res-ref-name>jms/QCF</res-ref-name>
<resource-ref>
<res-type>javax.jms.QueueConnectionFactory</res-type>
<res-auth>Container</res-auth>
</resource-ref>
и разработчику потребуется создать порт слушателя и связать развернутый MDB с портом слушателя. QueueConnectionFactory, указанная выше, предназначена для создания подключений к очереди.
Опубликовать совместимые с JCA MDB:
Post JCA, MDB рассматривается как ресурс JCA. Спецификация JCA также включает интерфейсы API обмена сообщениями. Поток в случае JCA: -
incoming message --> listened by Message listener --> Resource Adapter-->deliver to MDB
Теперь, когда JCA была создана для работы с любым типом resouce, это JDBC, JMS, EIS и т.д., поэтому у него есть общий способ "Activation Spec" для создания конфигураций для любого адаптера. В файле ra.xml упоминается, какой тип активации необходим для того, чтобы этот конкретный адаптер работал. Спецификация активации не является средой выполнения, это просто детали конфигурации, используемые адаптером ресурсов. В вышеприведенном случае адаптер JCA будет использовать соединение из очереди на соединение factory, указанное в спецификации активации. Таким образом, в основном соединение в очереди factory в обоих случаях одинаково.
В случае веб-сферы вы можете использовать либо SIB (Service Integration Bus) для обмена сообщениями, либо внешнее программное обеспечение, такое как websphere MQ для обмена сообщениями.
В случае назначения SIB для обмена сообщениями: - SIB реализовал адаптер ресурсов JCA. Таким образом, MDB, использующий пункт назначения в SIB, может использовать спецификацию активации, чтобы указать детали адресата. и модуль адаптера ресурсов может взаимодействовать с механизмом обмена сообщениями и может доставлять сообщения в MDB.
В случае внешней среды обмена сообщениями, такой как websphere MQ: - Так как websphere MQ не реализовал какой-либо JCA-адаптер, нам нужно настроить порт прослушивателя для подключения к адресатам, находящимся на веб-странице MQ. Это порт слушателя, который доставляет сообщения в MDB.
Короче говоря, оба случая используют подключение к очереди factory, чтобы получить соединение в очереди. В одном случае это адаптер ресурсов (с информацией о конфигурации в форме спецификации активации), используемый для доставки сообщений, где, как и в другом случае, это порт слушателя (привязанный к очереди и factory), используемый для доставки сообщений.
Надеюсь, теперь это прояснится.