`
liwanchun_xd
  • 浏览: 123554 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

使用Spring实现JMS接收消息(XA事务)

阅读更多
1、开发环境: eclipse3.2+jdk1.5+jboss4.2.2
2、使用XA实现事务。

消息接收器代码:
public class ReceiverListener implements SessionAwareMessageListener  {

   public void onMessage(Message message, Session session)
        throws JMSException {
if (message instanceof TextMessage) {
  try {
     System.out.println("New Receive Message: " +
                  ((TextMessage) message).getText());
  } catch (JMSException ex) {
    throw new RuntimeException(ex);
  }
} else {
  throw new IllegalArgumentException(
                 "Message must be of type TextMessage");
}
    }

}

Spring配置:
<bean id="userJmsUtil" class="com.hc360.mmt.common.UserJmsTransactionUtil"> 
<property name="destinationJndi" value="queue/A"></property> 
<property name="connectionFactoryJndi" value="java:JmsXA"></property> 
<property name="factoryInitial" value="org.jnp.interfaces.NamingContextFactory"></property> 
<property name="providerUrl" value="localhost"></property> 
<property name="factoryUrlPkgs" value="org.jboss.naming:org.jnp.interfaces"></property> 
</bean> 

<bean id="jmsQueueConnectionFactory" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
<property name="targetObject" ref="userJmsUtil"></property> 
<property name="targetMethod" value="getConnectionFactory"></property> 
</bean> 


<bean id="destination" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
<property name="targetObject" ref="userJmsUtil"></property> 
<property name="targetMethod" value="getDestination"></property> 
</bean>

<!-- this is the Message Driven POJO (MDP) -->
<bean id="messageListener" class="com.hc360.jms.ReceiverListener" />

<!-- and this is the attendant message listener container -->
<bean id="listenerContainer1"
  class="org.springframework.jms.listener.DefaultMessageListenerContainer">
  <property name="concurrentConsumers" value="1"/>
  <property name="connectionFactory" ref="jmsQueueConnectionFactory" />
  <property name="destination" ref="destination" />
  <property name="messageListener" ref="messageListener" />
  <property name="transactionManager" ref="transactionManagerJTA" />
</bean>


<bean id="transactionManagerJTA" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransactionName">
<value>UserTransaction</value>
</property>
</bean>


分享到:
评论

相关推荐

    使用Atomikos处理ActiveMQ在Spring环境的XA事务

    标题“使用Atomikos处理ActiveMQ在Spring环境的XA事务”揭示了本文将涉及的关键技术领域,即在Spring框架中如何利用Atomikos这个开源事务管理器来支持分布式事务,特别是针对ActiveMQ消息队列的XA事务处理。...

    JMS ActiveMQ

    2. 全面的JMS规范实现,包括持久化、XA消息和事务。 3. 与Spring框架的良好集成。 4. 兼容各种J2EE服务器。 5. 支持多种传输协议,如VM、TCP、SSL、NIO等。 6. 消息持久化能力。 7. 集群功能,提高系统的可用性和...

    IBM jms 培训

    - **Spring框架集成**:Spring提供了JMS模板和监听器容器,简化了JMS的使用。 7. **最佳实践** - **性能优化**:例如,批量发送消息、合理设置消息缓存等。 - **安全性**:配置JMS提供者的安全策略,确保只有...

    TongLinkQ开发手册

    - **JMSAPI**:提供了一系列API用于实现消息的发送和接收。 - **开发JMS的步骤**:通常包括创建连接工厂、连接、会话、消息生产者或消费者等步骤。 - **JMS客户端程序**:实现了消息发送/接收、发布/订阅等功能的...

    不需要应用服务器的J2EE【转载】

    3. **事务管理**:为了确保数据的一致性,系统使用JTA(Java Transaction API)和JTA/XA事务来处理银行订单。JTA提供了一个标准的API来管理分布式事务,而XA事务则支持两阶段提交协议,保证跨多个资源(如数据库和...

    【BAT必备】activeMQ面试题

    5. **事务支持**:ActiveMQ支持本地JMS事务和XA事务,确保消息的准确投递。 6. **集群与高可用性**:ActiveMQ可以通过集群实现高可用性,当主节点故障时,其他节点可以接管服务,保证系统的连续性。 7. **网络连接...

    jta.jar包;jta.jar包

    7. **JMS Integration**: JTA也支持与Java消息服务(JMS)的集成,允许在事务中发送和接收消息,确保消息的可靠传输。 8. **Global vs. Local Transactions**: JTA允许在单一应用服务器内部进行局部事务,也可以...

    ActiveMQ消息总线介绍

    - **事务支持**:支持XA事务,确保消息处理的一致性和完整性。 - **集群支持**:支持多实例之间的消息共享,提高系统的可用性和扩展性。 综上所述,ActiveMQ不仅是一个强大的消息中间件,而且还是一个高度可定制和...

    ActiveMQ 消息队列

    2. **全面兼容JMS 1.1和J2EE 1.4规范**:ActiveMQ不仅支持JMS 1.1标准的所有特性,包括持久化、XA事务等,同时还符合J2EE 1.4规范,确保了与各种企业级应用的良好集成。 3. **与Spring框架的无缝集成**:ActiveMQ...

    springboot参考指南

    混合XA和non-XA的JMS连接 v. 32.5. 支持可替代的内嵌事务管理器 xii. 33. Spring集成 xiii. 34. 基于JMX的监控和管理 xiv. 35. 测试 Spring Boot参考指南 4 i. 35.1. 测试作用域依赖 ii. 35.2. 测试Spring应用 iii....

    ActiveMQ快速上手 PDF

    - **定义**:ActiveMQ 是 Apache 软件基金会所研发的一款开源消息中间件,它完全支持 JMS 1.1 和 J2EE 1.4 规范,能够作为 JMS Provider 实现消息传递功能。 - **功能**:ActiveMQ 的核心功能在于帮助实现高性能、高...

    ActiveMQ学习

    2. **遵循 JMS 标准**:完全支持 Java Message Service (JMS) 1.1 规范,包括持久化、XA 消息和事务处理,确保了与其他 JMS 兼容的应用程序的互操作性。 3. **与 Spring 集成**:ActiveMQ 可轻松嵌入到使用 Spring ...

    ActiveMQ教程

    - **遵循JMS和J2EE规范**:ActiveMQ提供JMS规范的完整实现,支持JMS 1.1中的所有功能,包括持久化、事务(XA消息)和事务管理等。 - **支持多种协议**:它支持多种消息传输协议,如内部VM通信(in-VM)、TCP、SSL、...

    分布式JAVA应用+基础与实践

    JMS是一种标准的API,用于在Java应用程序之间发送和接收消息。消息队列如ActiveMQ、RabbitMQ等,作为中间件,解耦了生产者和消费者,提供异步处理能力,提高系统的可扩展性和可靠性。 4. EJB(Enterprise JavaBeans...

    apache-activemq-5.12.0-bin.tar.gz

    3. **事务支持**:ActiveMQ支持本地JMS事务和X/Open XA分布式事务,确保消息传递的原子性和一致性。 4. **持久化**:即使在系统崩溃或重启后,ActiveMQ也能保证消息的持久性,不丢失任何重要数据。 5. **多种协议...

    springboot集成activemq的实例代码

    2. 全面符合JMS 1.1和J2EE 1.4规范,支持持久化、XA消息和事务处理。 3. 与Spring框架紧密集成,方便内嵌到Spring应用中。 4. 可在常见的J2EE服务器上运行,如Geronimo、JBoss、GlassFish和WebLogic,通过JCA 1.5...

    active mq 学习笔记

    2. **标准支持**:完全支持JMS 1.1和J2EE 1.4规范,包括持久化、XA消息和事务管理等功能。 3. **Spring集成**:ActiveMQ易于与使用Spring框架的应用集成,并且支持Spring 2.0的特性。 4. **持久化机制**:支持通过...

    mule(java)开发简介

    - Mule 支持多种事务管理策略,包括 XA 事务,这是一种分布式的事务处理标准,用于协调跨多个资源管理器的操作。 10. **对事件的路由、传输和转换的端到端支持:** - 这意味着从事件的产生、处理到最后的消费,...

Global site tag (gtag.js) - Google Analytics