jms mdb_MDB!= JMS,反之亦然
jms mdb
基本
- 消息驱动Bean(又称为MDB)只是另一个EJB,例如无状态,有状态或单例。 使用@MessageDriven批注指定。
- MDB用于异步消息处理
- 它们与无状态EJB 相似 ,因为它们都是由EJB容器池化的
- 但是,它们与无状态EJB不同,因为客户端无法直接访问 MDB。 只有容器会响应客户端发送到MDB正在侦听的端点的消息来调用它们。
MDB的常用模式
- MDB通常与JMS(Java消息服务API)一起使用
- MDB配置为使用@ActivationConfigProperty侦听JMS目标,实现javax.jms.MessageListener接口,并在onMessage方法中提供业务逻辑(消息处理)
- 组件将消息发送到JMS目标( 端点 )。 这不是一个同步过程(如上所述)。 消息触发方法立即返回,容器负责调用配置为侦听该特定JMS目标的MDB
基于JMS的MDB
MDB神话
- MDB 不属于JMS规范的一部分, 也不以任何方式与JMS 耦合 –这是一个误解。
- MDB是池化的bean,可以以异步方式处理消息,并且可以侦听任何端点,包括JMS队列或目的地 (通常可见)。
- 实际上,从EJB 2.1开始就是这种情况,并且通过JCA(Java连接器体系结构)规范得以实现
什么是JCA?
- 在较高的层次上,JCA使Java EE服务器可以通过标准SPI与外部系统(例如,旧企业信息源等)进行交互(此处不处理复杂的JCA详细信息)
- 可以使用JCA标准接口为特定系统构建资源适配器(RAR文件)
- JCA为Java EE容器和外部系统之间的双向通信(入站和出站)提供合同-资源适配器本身需要实现该实现
礼貌:JCA规范文档
JCA如何实现通用MDB的概念?
- JCA定义了MDB特定的功能
- 就像在基于JMS的MDB中一样,基于JCA的MDB也需要实现一个接口并定义激活属性(两者都特定于JCA Resource Adapter实现)
- 外部系统发送一条消息,资源适配器通过其入站JCA合同的实现接受该消息,并将该消息中继到内部端点(这又是特定于JCA适配器实现的)
- 注册到此端点的MDB会在接收到的消息上执行业务逻辑
基于JCA的MDB
最终结果
外部系统使用标准接口(JCA)将消息发送到Java EE容器,而JCA实现则负责将其传递到适当的端点,该端点进一步将其传递给已注册的MDB
需要注意的是,由于EJB规范供应商必须支持基于JCA的MDB,因此它在Java EE服务器之间是完全可移植的 。
进一步阅读
- JCA规范
- JMS规范
- EJB规范
翻译自: https://www.javacodegeeks.com/2015/01/mdb-jms-and-vice-versa.html
jms mdb
jms mdb_MDB!= JMS,反之亦然相关推荐
- 【JMS】JMS详解
一.JMS介绍 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或者在分布式系统中发 ...
- 【Java.JMS】JMS基础
JMS基本概念 JMS 是 SUN 公司开发的一套访问 MOM(Message-Oriented-Middleware) 消息服务中间件的标准 API. MOM 提供消息接收和转发的服务,对消息进行缓 ...
- JMS之——JMS简介
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/68962304 jms即Java消息服务(Java Message Service) ...
- 【JMS】JMS支持的模式讲解
介绍 JMS,Java消息服务应用程序接口,全程为Java Message Service,是一个Java平台中关于面向消息中间件的API框架,用在两个应用程序之间或分布式系统中发送消息,整体的功能有 ...
- 深入浅出JMS(一)–JMS基本概念(转载)
摘要:The Java Message Service (JMS) API is a messaging standard that allows application components bas ...
- 框架面试题(maven、ZooKeeper、Dubbo、Nginx、Redis、Lucene、Solr、ActiveMQ、JMS
什么是 Maven? Maven 使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建, 报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管 ...
- 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
转载:http://blog.csdn.net/jiuqiyuliang/article/details/48758203 第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模 ...
- JMS Java消息服务(Java Message Service)
JMS 在一些场景下RPC的同步方式可能不太适合业务逻辑的处理,并且这种方式在某些场景下会导致业务的紧耦合. 基于异步交互模型的JMS解决了RPC产生的紧耦合问题,它提供了一个可以通过网络访问的抽象消 ...
- 消息中间件和JMS介绍
在一个公司创立初期,他可能只有几个应用,系统之间的关联也不是那么大,A系统调用B系统就直接调用B提供的API接口:后来这个公司做大了,他一步步发展有了几十个系统,这时候A系统要调用B系统的接口,但是B ...
最新文章
- Java数据结构和算法:线性表
- 违反了primarykey约束怎么解决_前期物业服务合同对主业有约束力吗?
- listview显示mysql数据_C#在listview控件中显示数据库数据
- 说说Android桌面(Launcher应用)背后的故事(九)——让我的桌面多姿多彩
- SAP gateway CSRF token的获取调试办法
- Wordpress插件检测机制原理
- LeetCode MySQL 1159. 市场分析 II(rank+over)
- (c语言)将一个数组逆序输出
- 服务器操作记录21/11/19
- 《线性代数及其应用 第四版》习题1.4
- php format tool,usb 開機碟製作工具HP USB Disk Storage format Tool 2.23
- log4j的详细配置(最省心完美配置)
- 泰戈尔专集:飞鸟集·新月集·园丁集(美冠纯美阅读书系·外国卷) 读后感
- 单片机控制直流电机(风扇)电路详解
- 一周新论文 | 2020年第12周 | 自然语言处理相关
- hdu 5514 容斥
- 大厂iOS APP都用了哪些第三方库?
- 济南计算机机械工程学校,济南电子机械工程学校2021年招生简章
- 华为历年校招高频50题!
- Win10安装Rtree包报错:OSError: could not find or load spatialindex_c-64.dll
热门文章
- P4071-[SDOI2016]排列计数【组合计数,错排】
- 欢乐纪中某B组赛【2019.1.18】
- atcoder E - Greedy Ant(最优解等价+dp)
- 动态规划训练18 [免费馅饼 HDU - 1176 ]
- 2、mybatis的基本使用
- K8S Learning(5)——Pod
- Java Jenkins Api
- Hadoop入门(十三)远程提交wordCout程序到hadoop集群
- artTemplate的空白输出坑
- MongoDB查询实现 笛卡尔积,Union All 和Union 功能