jms mdb_MDB!= JMS,反之亦然
生活随笔
收集整理的這篇文章主要介紹了
jms mdb_MDB!= JMS,反之亦然
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
jms mdb
基本
- 消息驅(qū)動(dòng)Bean(又稱(chēng)為MDB)只是另一個(gè)EJB,例如無(wú)狀態(tài),有狀態(tài)或單例。 使用@MessageDriven批注指定。
- MDB用于異步消息處理
- 它們與無(wú)狀態(tài)EJB 相似 ,因?yàn)樗鼈兌际怯蒃JB容器池化的
- 但是,它們與無(wú)狀態(tài)EJB不同,因?yàn)榭蛻?hù)端無(wú)法直接訪問(wèn) MDB。 只有容器會(huì)響應(yīng)客戶(hù)端發(fā)送到MDB正在偵聽(tīng)的端點(diǎn)的消息來(lái)調(diào)用它們。
MDB的常用模式
- MDB通常與JMS(Java消息服務(wù)API)一起使用
- MDB配置為使用@ActivationConfigProperty偵聽(tīng)JMS目標(biāo),實(shí)現(xiàn)javax.jms.MessageListener接口,并在onMessage方法中提供業(yè)務(wù)邏輯(消息處理)
- 組件將消息發(fā)送到JMS目標(biāo)( 端點(diǎn) )。 這不是一個(gè)同步過(guò)程(如上所述)。 消息觸發(fā)方法立即返回,容器負(fù)責(zé)調(diào)用配置為偵聽(tīng)該特定JMS目標(biāo)的MDB
基于JMS的MDB
MDB神話(huà)
- MDB 不屬于JMS規(guī)范的一部分, 也不以任何方式與JMS 耦合 –這是一個(gè)誤解。
- MDB是池化的bean,可以以異步方式處理消息,并且可以偵聽(tīng)任何端點(diǎn),包括JMS隊(duì)列或目的地 (通常可見(jiàn))。
- 實(shí)際上,從EJB 2.1開(kāi)始就是這種情況,并且通過(guò)JCA(Java連接器體系結(jié)構(gòu))規(guī)范得以實(shí)現(xiàn)
什么是JCA?
- 在較高的層次上,JCA使Java EE服務(wù)器可以通過(guò)標(biāo)準(zhǔn)SPI與外部系統(tǒng)(例如,舊企業(yè)信息源等)進(jìn)行交互(此處不處理復(fù)雜的JCA詳細(xì)信息)
- 可以使用JCA標(biāo)準(zhǔn)接口為特定系統(tǒng)構(gòu)建資源適配器(RAR文件)
- JCA為Java EE容器和外部系統(tǒng)之間的雙向通信(入站和出站)提供合同-資源適配器本身需要實(shí)現(xiàn)該實(shí)現(xiàn)
禮貌:JCA規(guī)范文檔
JCA如何實(shí)現(xiàn)通用MDB的概念?
- JCA定義了MDB特定的功能
- 就像在基于JMS的MDB中一樣,基于JCA的MDB也需要實(shí)現(xiàn)一個(gè)接口并定義激活屬性(兩者都特定于JCA Resource Adapter實(shí)現(xiàn))
- 外部系統(tǒng)發(fā)送一條消息,資源適配器通過(guò)其入站JCA合同的實(shí)現(xiàn)接受該消息,并將該消息中繼到內(nèi)部端點(diǎn)(這又是特定于JCA適配器實(shí)現(xiàn)的)
- 注冊(cè)到此端點(diǎn)的MDB會(huì)在接收到的消息上執(zhí)行業(yè)務(wù)邏輯
基于JCA的MDB
最終結(jié)果
外部系統(tǒng)使用標(biāo)準(zhǔn)接口(JCA)將消息發(fā)送到Java EE容器,而JCA實(shí)現(xiàn)則負(fù)責(zé)將其傳遞到適當(dāng)?shù)亩它c(diǎn),該端點(diǎn)進(jìn)一步將其傳遞給已注冊(cè)的MDB
需要注意的是,由于EJB規(guī)范供應(yīng)商必須支持基于JCA的MDB,因此它在Java EE服務(wù)器之間是完全可移植的 。
進(jìn)一步閱讀
- JCA規(guī)范
- JMS規(guī)范
- EJB規(guī)范
翻譯自: https://www.javacodegeeks.com/2015/01/mdb-jms-and-vice-versa.html
jms mdb
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的jms mdb_MDB!= JMS,反之亦然的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小身材高颜值,小新Air14满足你多方面
- 下一篇: ejb运行程序_在哪里可以运行EJB?