JMS2.0的新特性
关于JMS2.0的新特性、变更和说明的详细介绍列表,参见附录A.1章节“版本2.0的变更列表”。这里提供简单的摘要:
JMS2.0规范现在要求JMS提供者同时实现点对点和发布订阅。
如下的新消息特性是JMS2.0新增的:
- 延迟投递:消息生产者现在可以指定一个消息不立即投递而是在特定的时间间隔以后投递
- 新添加的发送方法运行应用异步的发送消息
- JMS提供者现在必须设置JMSXDeliveryCount消息属性
如下变更是为了改进扩展性:
- 持久订阅或非持久订阅现在可以是“共享的”,共享的订阅可以有多个消费者
以下的变更是为了简化JMS API的使用:
- Connection,Session和其他带有close()方法的对象现在实现了java.lang. AutoCloseable接口,这允许它们被用于Java SE7的try-with-resources语句中
- 增加了一个新的简化API,相对于标准API更加简单,特别是用于Java EE应用的时候
- 添加了新的方法用于创建session,而无需提供过多的参数
- 虽然创建非共享持久订阅时Client ID还是必须的,但是现在创建共享持久订阅时Client ID是可选的
- 一个名为getBody的新方法添加到Message,它允许直接从消息中抽取内容而不需要预先将其转换到一个子类型
本规范中添加了完整的一个章节(第十二章)来描述在Java EE web或EJB容器中使用JMS API时所需要的额外约束和行为。这些信息仅仅在EJB和Java EE平台规范中可用。
本规范中添加了完整的一个章节(第十三章)来建议JMS提供者包含一个资源适配器,以及一些activation属性。
新的方法以及添加Session,Session在一个持久订阅上返回一个MessageConsumer。以前的版本,应用只可以包含一个“域特定”的TopicSubscriber对象,现在它以及不建议使用了。
本规范将在多处作以说明。