设计企业应用程序以使用消息驱动的 bean
为了帮助您设计企业应用程序,请考虑使用通用企业应用程序,它使用一个消息驱动的 bean 从 JMS 队列目标检索消息,并将消息传递至实现业务逻辑的另一个企业 Bean。
关于此任务
要设计企业应用程序以使用消息驱动的 bean,请完成以下步骤:
过程
- 标识消息驱动的 bean 将处理的消息类型的消息侦听器接口。 消息驱动的 bean 类必须实现此消息侦听器接口。例如,用于 JMS 消息传递的 EJB 消息驱动的 bean 类必须实现 javax.jms.MessageListener 接口。
- 识别应用程序要使用的资源。 这有助于标识必须在应用程序中使用且配置为应用程序部署描述符或必须在 WebSphere® Application Server 中使用的资源属性。
表 1. JMS 资源类型及其属性示例. 此表的第一列中列示 JMS 资源类型,第二列显示每种 JMS 资源类型的属性示例。 JMS 资源类型 属性(示例) JMS 连接工厂 Name: SamplePtoPQueueConnectionFactory JNDI Name: Sample/JMS/QCF
JMS 目标 Name: Q1 JNDI Name: Sample/JMS/Q1
J2C 激活规范属性 Name: MyMDBsActivationSpec JNDI Name: eis/MyMDBsActivationSpec Destination JNDI Name: MyQueue Destination type: javax.jms.Queue
消息驱动的 bean(部署属性) Name: JMSppSampleMDBBean Transaction type: Container Message selector: JMSType='car' Acknowledge mode: Dups OK Acknowledge Destination type: javax.jms.Queue ActivationSpec JNDI name: MyMDBsActivationSpec
业务逻辑 Bean Name: MyLogicBean
确保需要时使用一致的值;例如,J2C 激活规范的 JNDI 名称在激活规范和消息驱动的 bean 部署属性中必须相同。
- 分离业务逻辑。 应该开发消息驱动的 bean,以将入局消息的业务处理委托给另一个企业 Bean。这提供消息处理和业务处理的明确分离。这也使得业务处理可以在入局消息到达时或从 WebSphere J2EE 客户机调用。
- 决定是否配置安全性。 达到由侦听器所处理目标的消息没有与其关联的客户机凭证;这些消息是匿名的。安全性取决于消息驱动的 bean 的 RunAs 标识指定作为 EJB 组件的角色。有关 EJB 安全性的更多信息,请参阅“EJB 组件安全性”。
- 了解缺省消息传递提供程序如何尽最大努力来处理非持久消息。 如果您有非事务性消息驱动的 Bean,那么系统会在消息驱动的 Bean 启动或完成时删除消息。如果消息驱动的 Bean 生成异常,因而无法完成时,系统将执行下列其中一个操作:
- 如果系统配置为在消息驱动的 Bean 完成时删除消息,那么会将消息分派到消息驱动的 Bean 的新实例,从而使消息有进行处理的其他机会。
- 如果系统配置为在消息驱动的 Bean 启动时删除消息,那么该消息会丢失。
如果服务质量设置为最大努力非持久,那么将在消息驱动的 Bean 启动时删除消息。对于所有其他服务质量,在消息驱动的 Bean 完成时删除消息。
相关概念:
相关任务:
相关参考:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tmb_desap
文件名:tmb_desap.html