【问题标题】:Connection Pool for IBM MQ in Spring BootSpring Boot 中 IBM MQ 的连接池
【发布时间】:2019-06-03 17:24:02
【问题描述】:

目前,我正在使用 javax.jms.ConnectionFactory 与 Apache Camel 和 Spring Boot 进行消息传递。我想使用连接池在 Spring bean 中连接 IBM MQ。我该怎么做?

【问题讨论】:

标签: apache spring-boot apache-camel ibm-mq


【解决方案1】:

在 IBM MQ 服务器上应该有一个 java/lib 文件夹,其中包含连接到 IBM MQ 所需的 JAR 文件,正如 IBM Knowledge Center 中所提到的:

在企业内,可以将以下文件移动到需要为 Java 应用程序运行 IBM MQ 类的系统中:

  • com.ibm.mq.allclient.jar
  • com.ibm.mq.traceControl.jar

文件com.ibm.mq.allclient.jar 包含用于 JMS 的 IBM MQ 类、用于 Java 的 IBM MQ 类以及 PCF 和标头类。如果您将此文件移动到新位置,请确保您采取措施以使用新的 IBM MQ 修订包来维护此新位置。此外,如果您正在获得临时修复,请确保 IBM 支持人员知道该文件的使用。

在这些 JAR 文件中,您可以找到 ConnectionFactory 的实现,称为 MQQueueConnectionFactory。您必须将必要的 JAR 文件添加到应用程序的类路径中,然后您可以配置 ConnectionFactory,例如:

@Bean
public ConnectionFactory ibmConnectionFactory() throws JMSException {
    MQQueueConnectionFactory connectionFactory = new MQQueueConnectionFactory();
    // Change this to the hostname of the IBM MQ server
    connectionFactory.setHostName("myhost.example.org");
    connectionFactory.setPort(1414);
    // Change this to the queue manager you use
    connectionFactory.setQueueManager("MQ_NAME");
    connectionFactory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
    // Create your own channel in stead of using SYSTEM.DEF.SVRCONN
    connectionFactory.setChannel("SYSTEM.DEF.SVRCONN");
    return connectionFactory;
}

【讨论】:

  • 感谢您提供详细信息。连接池属性有哪些?
  • connectionFactory 中的所有内容。另外,不要使用 SYSTEM.DEF.SVRCONN 通道。让 MQAdmin 为您的应用程序创建一个唯一通道。
猜你喜欢
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 2019-06-16
  • 2020-06-16
  • 1970-01-01
  • 2021-08-01
  • 1970-01-01
  • 2019-06-01
相关资源
最近更新 更多