Jef*_*ght 20 java websphere java-ee ibm-mq
我的理解是:
IBM的这个图表很有帮助:

会话bean和实体bean [又名MDP]允许您发送JMS消息并同步接收它们,但不是异步接收它们.为避免占用服务器资源,您可能不希望在服务器端组件中使用阻塞同步接收.要异步接收消息,请使用消息驱动的bean [MDB].
所以到目前为止我不满意的清单是:
我的问题是:还有其他差异吗?你能澄清一下这个区别吗?
参考文献:
ag1*_*112 15
@Jeffrey Knight:让我试着根据我的经验澄清一下.
我们理解MDB是消耗传入消息的bean.现在需要指定特定MDB要从哪个目标消耗的消息类型.
MDB基本上是一个消息终点.
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>
Run Code Online (Sandbox Code Playgroud)
部署者需要创建侦听器端口并将已部署的MDB关联到侦听器端口.上面指定的QueueConnectionFactory用于创建与队列的连接.
在JCA之后,MDB被视为JCA资源.JCA规范也包含了消息传递框架API.JCA的流程是: -
incoming message --> listened by Message listener --> Resource Adapter-->deliver to MDB
Run Code Online (Sandbox Code Playgroud)
现在,因为JCA被创建用于任何类型的资源,无论是JDBC,JMS,EIS等,所以它具有通用的"激活规范"方式来为任何适配器创建配置.在ra.xml文件中,提到了特定适配器需要哪种激活规范才能工作.激活规范不是运行时实体,它只是资源适配器使用的配置细节.在上述情况下,JCA适配器将使用激活规范中提到的队列连接工厂的连接.所以基本上两个案例中的队列连接工厂都是一样的.
对于websphere,您可以使用SIB(服务集成总线)目标进行消息传递,也可以使用外部软件(如websphere MQ)进行消息传递.
在用于消息传递的SIB目的地的情况下: - SIB已经实现了JCA资源适配器.因此,在SIB上使用目标的MDB可以使用激活规范来指定目标详细信息.和资源适配器模块可以与消息传递引擎交互,并可以将消息传递给MDB.
对于像websphere MQ这样的外部消息传递框架: - 由于websphere MQ没有实现任何JCA适配器,因此我们需要配置侦听器端口以连接到驻留在websphere MQ上的目标.将侦听端口传递给MDB的是侦听器端口.
简而言之,两种情况都使用队列连接工厂来获取队列连接.在一种情况下,资源适配器(具有激活规范形式的配置信息)用于传递消息,而在其他情况下,它是用于传递消息的侦听器端口(绑定到队列和工厂).
我希望现在澄清一下.
Kez*_*lia 12
它们都是配置,但连接工厂用于出站消息,激活规范用于入站消息传递.
这就是我从IBM那里得到的.
激活规范是JCA 1.5规范的一部分.MDB应用程序使用激活规范连接到WebSphere MQ队列管理器以处理入站消息.激活规范还提供其他选项,例如安全设置.
JMS连接工厂包含有关如何创建连接的信息.当应用程序需要JMS连接时,工厂会创建连接实例.连接工厂需要与先前创建的激活规范相同的连接信息,但用于来自MDB的出站消息,而激活规范用于入站消息.
| 归档时间: |
|
| 查看次数: |
25028 次 |
| 最近记录: |