队列式交易处理 直接交易过程是同步的,起初交易创建者被阻塞直到交易管理器开始运行为止。不幸的是,交易的客户端或是服务端通信有时候会失败。有时候,有些交易的请求等级有很高,需要优先处理。这种同步交易处理模式无法很好的处理这些情况。这导致了使用队列的异步交易处理模式的发展。队列是一种交易资源,队列上的操作包括入队和出队。在J2EE平台定义了两种机制处理队列。一种是使用原生JMS API,另一种是利用消息Bean,它被定义在EJB2.0中。 交易中的JMS API 应用组件的开发者不应该在单一交易里使用JMS请求-应答范例。直到交易被提交,一个JMS消息不会被投递给它的最终目标,在同一个交易里应答的接受决不会发生。因为一个容器管理着一个代表bean的JMS会话的交易。createQueuesession(boolen transacted, int acknowledgeMode)和createTopsession(booleantransacted, int acknowledgeMode)方法的参数被忽略。我们建议组件开发者指定一个被处理过的会话提供0作为acknowledgement的值。记住JMS的acknowledge()方法无论是在一个交易里还是在一个没有指明的交易上下文都不该使用,这一点很重要。在一个未确定的交易上下文消息的确认是通过带有JMS AUTO_ACKNOWLEDGE符号的容器来处理的。