快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
应用程序服务器的引用。 这允许设计者在开发商业程序时最充分的利用应用程序服务器和JMS服务器。

MessageDrivenBean容器服务

EJB容器提供了下列服务,它们都是低级的EJB支持的服务,不能直接被使用EJB1.1的JMS开发者使用。

1.管理生命周期:

MessageDrivenBean的生命周期与配置它的EJB服务器的寿命是一致的,因为MessageDrivenBean是无状态的,所以组件实例通常被EJB服务器集中起来,并且当一条消息变得对于作为消息消费者的主题或队列可用的时候,会被容器取回,见图5。

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

2、处理异常:

MessageDrivenBean组件当处理消息的时候,可能不会抛出应用程序异常,这就意味着可能被MessageDrivenBean抛出的唯一的异常指明一个系统错误的运行时间异常。容器将会处理这个异常,方法是删除这个组件实例,并返回任何组件实例或容器启动的事务处理。

3、线程或并发性:

MessageDrivenBean实例是在一个单独的控制线程中执行,这将大大的简化开发者的任务。EJB服务器将确保这一特性,另外,EJB服务器可能提供一种操作模式允许多消息被单独的组件实例同时处理,这个配置选项实用定义在JMS规范中的“expert level”类。JMS提供者并不一定带有这些类,所以EJB服务器可能不能利用每一种JMS实现的这种功能。

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

时间:2010-12-16

4、事务处理:

就像使用entity或session组件一样,MessageDrivenBean组件也可以有“contain-or-bean-managed”(容器或组件管理)事务处理。一个事务属性可以设置为MessageDrivenBean组件的onMessage()方法。因为没有客户端事务处理,所以只有一个事务处理属性的子集考虑到entity和session组件与MessageDrivenBean组件有关系。使用了容器管理事务处理。容器将能支持MessageDrivenBean的Required和NotSupport事务处理属性。一个带有组件管理事务处理的MessageDrivenBean组件可以使用JTA UserTransaction对象。这个MessageDrivenBean组件在从onMessage()方法返回之前,必须先结束事务处理。onMessage()方法非常简单,它带有容器管理事务界限和NotSupported事务属性。容器将不会创建事务并且组件开发者被禁止访问 UserTransaction对象。

更有趣的事,当onMessage()方法被指定了Required事务属性,这时容器将创建一个全局事务处理收集任何可参考的资源并被传递到任何其他的正在处理消息的EJB服务器上。这是唯一一种JMS主题或队列接口包含于EJB事务处理中的情景。

对于使用Required事务属性的组件,JMS服务器将成为XAResource,如果JMS服务器提供者不支持XA事务处理,JMS session通常将与容器的全局事务处理的结果同步。这样,容器将不能包括用于管理分布事务的两方面的委托处理的JMS服务器。JMS session的一个 rollback(反转)将警告 JMS服务器,消息应当被重新发送。

5、消息确认:

容器总是处理MessageDrivenBean组件的消息收到的确认,对于组件来说,使用定义在 JMS规范中的客户端消息收到确认方法是非法的。消息收到确认可以被设置为 DUPS_OK_ACKNOWLEDGE或 AUTO_ACKNOWLEDGE,前者允许在一次失败之后投递消息的副本,而后者提供一个严格的保证机制,确保消息只能被投递一次。

6、安全性

因为MessageDrivenBean组件没有客户端,所以在接受消息的时候容器基本上不会产生安全问题。EJB2.0规范中为组件方法执行一个声明指定的功能提供了方便。因此,MessageDrivenBean组件可以被设置来确保用于传送到其他正在处理消息的EJB服务器的安全。这就可以使MessageDrivenBean组件维护方法级安全性了。

应用程序服务器框架

当 MessageDrivenBean提供的功能在应用程序服务器内被部署好后,它就会以指数形式膨胀开来。一个高端的应用程序服务器提供可扩展性,负

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号