快速业务通道

深入探讨EJB中新的消息驱动组件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
实例化时被调用 *消息驱动上下文允许组件开发者访问EJB容器的工具 * * 参数ctx : 消息驱动上下文 */ public void setMessageDrivenContext( MessageDrivenContext ctx) throws javax.ejb.EJBException { System.out.println( "StockListenerMDB: setMessageDrivenContext 被调用。"); } /** * ejbCreate with no args required by spec, though not * enforced by interface */ public void ejbCreate() { System.out.println( "StockListenerMDB: ejbCreate called."); } }

部署描述器

MessageDrivenBean可以使用XML部署描述器来指出受EJB服务器信息控制的运行时间动作,下面是部署描述器中定义MessageDrivenBean的有效的DTD元素。

<!ELEMENT message-driven (description?, display-name?, small-icon?, large-icon?, ejb-name?, ejb-class, transaction-type, transaction-scope?, jms-message-selector?, jms-acknowledge- mode?, message-driven-destination?, env-entry*, ejb-ref*, security- identity?, resource-ref*, resource- env-ref*)>

深入探讨EJB中新的消息驱动组件(5)

时间:2010-12-16

需要注意的是,部署描述器包含所有除用来部署MessageDrivenBean组件的目标名以外的所有信息,目标名被设置在一个应用程序服务器提供商指定的配置文件中或作为一个系统属性。

在部署描述器中,配置器可以指定组件是倾向于用于主题还是用于队列,并且,如果倾向于用于主题那么组件是否应该担当持久的签署者( durable subscriber)的身份。像队列一样,持久的主题保证监听者将接收到所有发布到这个主题的消息,即使监听者可能一段时间都不可用。 持久的主题对应用程序的可靠性很重要。

我们的给出的MessageDrivenBean的部署描述器(见代码段5)告诉容器这个组件是特意侦听一个不持久主题。这个组件有使用 NotSupported方法事务属性的容器管理事务限定。

代码段5:

<ejb-jar> <enterprise-beans> <message-driven> <ejb-name>MessageListenerMDB</ejb-name> <ejb-class>messageListenerMDB</ejb-class> <transaction-type>Container</transaction-type> <transaction-scope>Local</transaction-scope> <jms-acknowledge-mode>auto-acknowledge</jms- acknowledge-mode> <message-driven-destination> <jms-destination-type>javax.jms.Topic</jms- destination-type> <jms-subscription-durability>nondurable</jms- subscription-durability> </message-driven-destination> </message-driven> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>MessageListenerMDB</ejb-name> <method-name>onMessage</method-name> <method-params> <method-param>javax.jms.Message</method-param> </method-params> </method> <trans-attribute>NotSupported</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar>

使用MessageDrivenBean组件的另一个好处就是它的部署的简洁性。 典型情况下,一个应用服务器供应商将提供定义组件部署描述器的工具,产生 EJB jar文件,并且部署组件。 一旦组件部署好了, EJB服务器将处理 EJB容器类的注册并且开始 JMS连接。 因为 JMS定义了一个标准,一个基于 JNDI的机制,用于获得 JMS主题,队列,连接以及一个能够使用任何JMS供应商实现的高端的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号