`
jetway
  • 浏览: 483783 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

在Tomcat 6.0下用JNDI连接IBM MQ 6.0的配置方法

 
阅读更多

 

 

假设在IBM MQ中定义的队列管理器的名为QueueManager, 端口1414,CCSID 437 ,创建名为LQ1,LQ2的队列分别用于发送和接收消息, 服务器连接通道名为SVRCONN。

 

1.项目包依赖

确保在项目的Classpath中导入了以下的jar包:

com.ibm.mq.jar ( %WebSphere MQ Root% /Java/lib/ )

com.ibm.mqjms.jar ( %WebSphere MQ Root% /Java/lib/ )

connector.jar ( %WebSphere MQ Root% /Java/lib/ )

dhbcore.jar ( %WebSphere MQ Root% /Java/lib/ )

geronimo-j2ee-management_1.0_spec-1.0.jar

geronimo-jms_1.1_spec-1.0.jar

jta.jar

如果需使用spring的JmsTemplate方式来读写MQ,还需要导入

spring.jar和commons-logging.jar

 

2.Tomcat的配置

在Tomcat的安装目录下,找到conf子目录下的context.xml, 默认情况下该文件的内容为:

<!-- The contents of this file will be loaded for each web application -->

<Context>

<!-- Default set of monitored resources -->

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->

<!--

<Manager pathname="" />

-->

</Context>

将其修改为:

<!-- The contents of this file will be loaded for each web application -->

<Context>

<!-- Default set of monitored resources -->

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->

<!--

<Manager pathname="" />

-->

<!—连接工厂定义-->

<Resource

name="jms/queueConnectionFactory"

auth="Container"

type="com.ibm.mq.jms.MQConnectionFactory"

factory="com.ibm.mq.jms.MQConnectionFactoryFactory"

description="JMS Queue Connection Factory for sending messages"

HOST="127.0.0.1"

PORT="1414"

CHAN="SVRCONN"

TRAN="1"

CCSID="437"

QMGR="QueueManager"

/>

<!—队列定义-->

<Resource

name="jms/sendMsgQueue"

auth="Container"

type="com.ibm.mq.jms.MQQueue"

factory="com.ibm.mq.jms.MQQueueFactory"

description="JMS Queue for sending messages to app"

QU="LQ1"

CCSID="437"

/>

<Resource

name="jms/recvMsgQueue"

auth="Container"

type="com.ibm.mq.jms.MQQueue"

factory="com.ibm.mq.jms.MQQueueFactory"

description="JMS Queue for receiving messages from app"

QU="LQ2"

CCSID="437"

/>

</Context>

 

也就是在Context元素下新增Resource子元素。

 

在Resource元素中,根据具体环境不同需要修改的属性有:

Name : JNDI的名称

HOST: 主机名

PORT: 队列管理器的端口号

CHAN:服务器通道名

CCSID:编码字符集标识

QMGR:队列管理器名

QU: 队列名

 

3.应用程序的配置

在web.xml中加入以下内容:

<!—连接工厂的JNDI引用-->

<resource-env-ref>

<resource-env-ref-name> jms/queueConnectionFactory</resource-env-ref-name>

<resource-env-ref-type> javax.jms.QueueConnectionFactory</resource-env-ref-type>

</resource-env-ref>

<!—队列的JNDI引用-->

<resource-env-ref>

<resource-env-ref-name>jms/sendMsgQueue</resource-env-ref-name>

<resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>

</resource-env-ref>

<resource-env-ref>

<resource-env-ref-name>jms/recvMsgQueue</resource-env-ref-name>

<resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>

</resource-env-ref>

 

测试程序如使用spring JmsTemplate方式操作MQ,在spring配置文件中JMS资源定义部分为:

<!-- 连接工厂定义 -->

<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName">

<value>java:comp/env/jms/queueConnectionFactory</value>

</property>

</bean>

<!-- 队列定义 -->

<bean id="sendQueue" class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName" value="java:comp/env/jms/sendMsgQueue" />

</bean>

<bean id="recvQueue" class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName" value="java:comp/env/jms/recvMsgQueue" />

</bean>

 

4. MQ编码字符集的修改

在中文系统下IBM MQ默认的编码字符集标识(CCSID)为1381,也就是简体中文编码。但是如果CCSID用1381的话,在Tomcat连接队列管理器时会出现错误,错误的Reason Code 为CCSID不能识别(至于为什么1381不能识别还不清楚),所以要修改CCSID。经过验证,CCSID=437 (西欧字符编码)可以连上队列管理器(貌似只要不是1381都能连,faint)。当然,IBM MQ里队列管理器的CCSID应修改为对应CCSID,方法如下:

假如队列管理器名为QueueManager,

(1) 启动QueueManager

(2) 在Dos命令行窗口下:

/> runmqsc QueueManager (回车)

ALTER QMGR FORCE CCSID(437)

End (退出)

(3) 重启QueueManager

如果一切正常,QueueManager的CCSID会修改为437

分享到:
评论

相关推荐

    tomcat6.0连接通过JNDI连接mysql实例

    Tomcat 6.0 中通过 JNDI 连接 MySQL 实例需要进行详细的配置和设置。本文将对 Tomcat 6.0 中的 JNDI 连接 MySQL 实例进行详细的介绍和解释。 配置 JNDI 资源 在 Tomcat 6.0 中,需要在 `META-INF/context.xml` ...

    tomcat6.0 配置jndi

    在Tomcat6.0中配置JNDI,主要是为了实现应用中的数据源管理,使得多个应用可以共享一个数据库连接池,提高资源利用率和系统性能。 **一、JNDI的基本概念** JNDI提供了一个统一的接口,让开发者可以查找和绑定各种...

    tomcat6.0中配置JNDI的DBCP连接

    在Java应用服务器中,如Tomcat 6.0,配置JNDI(Java Naming and Directory Interface)的DBCP(Database Connection Pool)连接池是管理数据库连接的重要步骤。JNDI是一个标准接口,允许应用程序查找和访问命名服务...

    tomcat6.0JNDI连接数据库.

    在Java应用服务器中,Tomcat 6.0是一款广泛使用的轻量级服务器,它支持多种方式来连接数据库,其中一种常见的方法就是通过Java Naming and Directory Interface (JNDI)。JNDI允许开发者以统一的方式来查找和访问各种...

    tomcat6.0数据库连接池驱动

    Tomcat 6.0数据库连接池驱动的使用,涉及到的主要知识点包括:数据库连接池的概念与作用,Tomcat内置的数据源实现(DBCP和C3P0),数据源的配置方法,JNDI的使用,以及在Java代码中获取和释放数据库连接。...

    tomcat6.0是一款免费开源的jsp服务器

    《深入理解Tomcat6.0:免费开源的JSP服务器》 Tomcat6.0,作为Apache软件基金会的旗下面向Java的Web应用服务器,以其免费开源的特性,深受开发者们的喜爱。它不仅是一个小巧而高效的JSP服务器,还包含了完整的HTTP...

    Tomcat6.0 JNDI数据源经典实例

    在Java应用服务器中,如Tomcat 6.0,JNDI(Java Naming and Directory Interface)数据源是一种标准的方法来管理数据库连接。JNDI允许应用程序通过一个全局名称查找资源,比如数据源,而无需硬编码数据库连接参数。...

    Tomcat6.0配置JNDI数据源完整例子(5.5与此配置相同)

    标题中的“Tomcat6.0配置JNDI数据源完整例子”是指在Apache Tomcat 6.0服务器中设置Java Naming and Directory Interface (JNDI)数据源的过程。JNDI是一个API,它允许应用程序查找和使用命名服务,如数据库连接池。...

    tomcat6.0 数据源配置

    标题“Tomcat6.0数据源配置”涉及的是在Apache Tomcat 6.0版本中设置和管理数据库连接池的过程。Tomcat作为一个流行的开源Java应用服务器,提供了多种数据源配置方式,以支持Web应用程序高效、安全地访问数据库。在...

    Tomcat5.0和Tomcat6.0

    2. **EJB轻量级集成**:尽管Tomcat是轻量级应用服务器,但Tomcat6.0开始支持EJB Lite,允许在不使用完整应用服务器的情况下使用部分企业级Java Bean功能。 3. **JNDI增强**:加强了Java Naming and Directory ...

    apache-tomcat6.0-tomcat+配置教程

    Apache Tomcat 6.0 是一个广泛使用的开源Java Servlet容器,它实现了Java EE的Web应用程序规范,特别是Servlet和JSP标准。本教程将带你深入了解如何配置Apache Tomcat 6.0,以确保你能顺利地运行和管理Java Web应用...

    tomcat 6.0 64位

    **标题解析:**“Tomcat 6.0 64位”指的是Apache Tomcat服务器的第六个主要版本,专门设计用于64位操作系统环境。Tomcat是一个开源的应用服务器,主要用于部署Java Servlet和JavaServer Pages(JSP)应用程序。 **...

    Tomcat6.0+MyEclipse6.0+mysql5.0数据库连接池配置!.pdf

    在本文中,我们将探讨如何在Tomcat 6.0、MyEclipse 6.0环境中配置与MySQL 5.0数据库的连接池。这个过程涉及到两个主要步骤:配置Tomcat的`context.xml`文件以及修改工程中的`web.xml`文件。 首先,我们来详细分析`...

    tomcat6.0的源代码

    《深入剖析Tomcat 6.0源代码》 Tomcat,作为Apache软件基金会的一个开源项目,是Java Servlet和JavaServer Pages(JSP)容器的首选,尤其在轻量级应用服务器领域,它以其高效、稳定和易用性而受到广泛的赞誉。...

    tomcat 6.0 lib jar

    Tomcat 6.0是Apache软件基金会开发的一款广泛使用的开源Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,为Web应用程序提供了一个轻量级的运行环境。"lib"目录在Tomcat中扮演着至关重要的...

    tomcat6.0配置sql2005数据库连接池.doc

    【描述】中的知识点:配置连接池可以避免频繁地创建和关闭数据库连接,减少系统资源消耗,尤其在高并发环境下至关重要。Tomcat的`context.xml`文件是配置应用程序上下文的元数据,包括数据源(DataSource)等资源的...

    tomcat6.0官方文档文档

    在Tomcat中,JNDI用于配置数据库连接池、邮件会话等资源。文档介绍了如何创建和管理这些资源,以及如何在应用中查找和使用它们。 五、监控(monitoring.html) 监控文档讲解了如何监控Tomcat服务器的运行状态,包括...

    Tomcat6.0压缩包

    【标题】"Tomcat6.0压缩包"指的是Apache Tomcat服务器的一个特定版本,即6.0.16。Tomcat是一款开源的、基于Java Servlet和JavaServer Pages(JSP)技术的应用服务器,广泛用于搭建Java Web应用。它遵循Java EE规范中...

Global site tag (gtag.js) - Google Analytics