`

如何解决JBOSS服务器jms事务失效问题

 
阅读更多
把JMS的队列连接工厂由JNDI替换成Spring bean的方式

涉及到MQ的jar包版本需要7.0.1.0以上,才支持重连。Maven有最新jar7.0.1.12版本。
dhbcore-7.0.1.12.jar
jmqi-7.0.1.12.jar
mqjms-7.0.1.12.jar

<dependency>
    <groupId>com.ibm.mqjms</groupId>
    <artifactId>mqjms</artifactId>
    <version>7.0.1.12</version>
</dependency>
<dependency>
    <groupId>com.ibm.mq.jmqi</groupId>
    <artifactId>jmqi</artifactId>
    <version>7.0.1.12</version>
</dependency>
<dependency>
    <groupId>com.ibm.mq.dhbcore</groupId>
    <artifactId>dhbcore</artifactId>
    <version>7.0.1.12</version>
</dependency>






第一步:在spring的配置文件中添加以下配置

连接工厂的配置如下:
<bean id="jmsConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
    <property name="queueManager" value="SOA_QM"></property>
    <property name="connectionNameList" value="192.168.0.101(2001),192.168.0.102(2001)"></property>
    <property name="clientReconnectOptions" value="16777216"></property>
<property name="clientReconnectTimeout" value="100"></property>
    	<property name="channel" value="CHANNELTEST"></property>
    	<property name="transportType" value="1"></property>
    <property name="CCSID" value="1208"></property>
</bean>
<!--
注:标红部分为有主备机时的配置属性
-->

<!--
队列配置如下:
-->
<bean id="receiveQueue" class="com.ibm.mq.jms.MQQueue">
    <property name="baseQueueName" value="TestReceiveQueue"></property>
    <property name="CCSID" value="1208"></property>
</bean>

<bean id="sendQueue" class="com.ibm.mq.jms.MQQueue">
    <property name="baseQueueName" value="TestSendQueue"></property>
    <property name="CCSID" value="1208"></property>
</bean>

<!--
注:无论生产或消费都这样配置,如果生产和消费的连接工厂或队列相同,只需配置一遍。
-->




//使用原生springJms的配置
//定义一个类,实现javax.jms.MessageListener接口
public class TestListener implements MessageListener {
    @Override
    public void onMessage(Message message) {
         //具体的业务逻辑
        	System.out.println(message);    }
}









<!--使用原生springJms的配置-->
<!--同非事务标准消费者,更改以下部分:-->
<bean id="testContainer"
      class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="concurrentConsumers" value="1" />
    <property name="maxConcurrentConsumers" value="2" />
    <property name="connectionFactory" ref="jmsConnectionFactory" />
    <property name="destination" ref="receiveQueue" />
    <property name="messageListener" ref="testListener" />
    <property name="sessionTransacted" value="true"></property>
</bean>

connectionFactory:队列连接工厂
destination:队列
messageListener:队列对应的监听器
sessionTransacted:是否启用JMS事务



分享到:
评论

相关推荐

    jboss-jms包

    - **持久性**:JBoss JMS支持消息持久化,即使在服务器重启后,未被消费的消息也不会丢失。 - **事务处理**:JMS支持两种类型的事务:本地事务(Local Transactions)和X/Open XA分布式事务(Distributed ...

    JBOSS建立JMS应用实例

    JBOSST(Java Business Open Source Solutions)是一个开源的企业级应用服务器,它提供了全面的中间件服务,包括对Java消息服务(JMS)的支持。JMS是一种标准,用于在分布式环境中传递消息,提供了一种可靠且异步的...

    jboss服务器下的jms实例

    【JBoss 服务器下的 JMS 实例】 Java 消息服务 (JMS) 是 Java 平台中用于处理异步消息传递的标准API,它在面向服务架构 (SOA) 中扮演着关键角色,特别是在需要与外部系统进行异步通信的企业环境中。JBoss 服务器...

    jboss 7 配置 jms

    - 通过日志分析和 JMX 监控来定位和解决问题。 总之,配置 JMS 在 JBoss 7 中涉及到对服务器配置文件的修改,创建连接工厂和目的地,以及在 Java 代码中实现消息的生产和消费。理解 JMS 的核心概念和 JBoss 7 的...

    jboss服务器配置指南

    JBoss服务器是一款开源的企业级应用服务器,基于Java EE标准,由Red Hat公司开发并维护。本配置指南将深入探讨JBoss服务器的配置和优化,帮助你更好地理解和管理这个强大的平台。 1. **安装与启动** - JBoss的下载...

    在IntelliJ idea8中部署Jboss服务器图解

    "在IntelliJ IDEA 8中部署Jboss服务器图解" IntelliJ IDEA 8是 JetBrains 公司开发的一款功能强大且灵活的集成开发环境(IDE),它支持多种programming语言,包括Java、Python、Ruby、PHP等。Jboss则是一款流行的...

    jboss-服务器下载

    JBoss 是一个开源的企业级应用服务器,它基于Java EE(Java Platform, Enterprise Edition)标准,提供了全面的中间件服务,包括Web服务器、EJB容器、JMS消息队列、事务处理以及许多其他企业级功能。在本文中,我们...

    JBOSS建立JMS应用实例(附源码)

    5. **JMS事务管理** - **XAResource**:JBoss支持使用JTA(Java Transaction API)进行事务管理,可以保证消息的原子性、一致性、隔离性和持久性。 - **事务提交与回滚**:根据业务需求,可以决定是使用自动提交...

    jboss服务器的详细配置

    JBoss 服务器是一款开源的应用服务器,它基于Java EE标准,提供了多种服务和功能,包括Web容器、EJB容器、JMS等。配置JBoss服务器是确保其安全性和适应性的重要步骤。以下是对标题和描述中涉及的JBoss配置知识点的...

    在Eclipse中配置JBoss服务器

    在Eclipse for Java EE中配置JBoss服务器是一个关键步骤,对于Java EE开发人员来说,能够高效地集成和管理服务器环境可以极大地提升开发效率。本文将详细介绍如何在Eclipse环境中配置和启动JBoss服务器。 首先,...

    基于Jboss的jms编程

    【基于Jboss的JMS编程】是关于Java消息服务(JMS)在Jboss应用服务器上的实现和配置的教程,适合初学者理解JMS的基本概念和应用。JMS是一种标准API,用于在分布式环境中发送、接收和管理消息,提供可靠的数据传输。 ...

    配置JBoss应用服务器

    配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss...

    Jboss服务器的使用说明

    ### JBoss服务器使用详解 JBoss是一款开源的应用服务器,它基于Java平台,支持JavaEE标准。本文将详细介绍JBoss服务器的安装、配置、部署及使用方法,并特别关注其与数据库的连接过程。 #### 一、JBoss服务器安装 ...

    Jboss项目部署文档

    在配置 Jboss 服务器之前,需要将 Jboss 服务器安装包解压到指定目录下,例如 D:\jboss-5.1.0.GA。然后,需要配置 JBOSS_HOME 环境变量,以便 Jboss 服务器可以找到安装目录。 三、项目打包 在部署 Jboss 项目之前...

    Jboss服务器常用配置

    【JBoss服务器常用配置】 JBoss服务器是一款开源的Java应用服务器,它基于Java EE规范,为企业级应用程序提供了全面的运行环境。本篇文章将详细介绍JBoss服务器的一些常见配置,以帮助用户更好地管理和优化其应用...

    JBOSS服务器安全配置基线.docx

    JBOSS 服务器安全配置基线 JBOSS 服务器安全配置基线是指为了确保 JBOSS 服务器的安全稳定运行而制定的安全策略和配置。该基线涵盖了安全组织结构、安全流程、安全设备、访问控制、加密与解密、权限管理、日志与...

    一台机器运行两个JBOSS服务器

    在IT行业中,尤其是在Java企业级应用开发领域,JBOSS服务器是一个非常重要的组件,它是一个开源的应用服务器,基于Java EE规范。本篇文章将详细讲解如何在同一台机器上配置并运行两个独立的JBOSS服务器,这对于开发...

    JBOSS服务器使用指南

    熟悉常见错误代码,学会通过日志、JMX监控和性能分析工具定位和解决问题。 通过以上内容的学习,你将具备基本的JBoss服务器操作和管理能力。这份文档详细地介绍了每个知识点,无论你是初学者还是有一定经验的开发者...

    jboss5服务器1

    jboss服务器,javaee容器,分布式

Global site tag (gtag.js) - Google Analytics