【问题标题】:Not able to Configure Queue Connection Factories in WebSphere Application Server无法在 WebSphere Application Server 中配置队列连接工厂
【发布时间】:2014-09-05 08:26:15
【问题描述】:

我正在使用 RAD 9.0 并尝试在 WebSphere Application Server 8.5 中配置队列连接工厂。我在同一台机器(Win7 64 位)上安装了 IBM MQ 7.0(32 位)。

在配置队列连接工厂后,当我点击测试连接时会报错:

无法与 WebSphere MQ 建立连接,原因如下:CC=2;RC=2495;AMQ8568:未找到本机 JNI 库“mqjbnd”。对于客户端安装,这是预期的。 [3=mqjbnd]

本机库路径(在 JMS>WebSphere MQ 消息传递提供程序下)设置为 C:/Program Files (x86)/IBM/WebSphere MQ\java\lib

我也尝试将其设置为 C:/Program Files (x86)/IBM/WebSphere MQ\java\lib64,但仍然遇到同样的错误。

还有必要配置队列连接工厂来配置MDB的监听端口吗?

【问题讨论】:

  • MQ 安装是客户端吗?客户端安装不附带 mqjbnd.dll。本例中的连接工厂需要修改为通过 SVRCONN 通道而不是通过绑定模式进行连接。

标签: java jms javabeans ibm-mq ibm-was


【解决方案1】:

WAS 使用环境变量 MQ_INSTALL_ROOT 指向(嵌入式)WebSphereMQ 客户端(环境->WebSphere 变量)。默认值为 ${WAS_INSTALL_ROOT}/lib/WMQ。我认为您不需要单独安装 WebSphereMQ 客户端 - 它带有 WAS(我正在使用 WAS8,但我猜他们在 8.5 中没有更改它)。 至于您的问题,可能是路径的问题:它使用空格。尝试将 WebSphereMQ 客户端库安装在没有空格的目录中(例如 C:\IBM\WMQClient)。但我认为你不需要它,检查目录 ${WAS_INSTALL_ROOT}/lib/WMQ - 它应该在那里。

关于激活规范 - 您不需要队列连接工厂,您只需要激活规范将连接到的队列定义。

【讨论】:

  • 感谢您的回答。我检查了我的环境。变量,但我没有找到 MQ_INSTALL_ROOT。无论如何,我创建了一个,但问题仍然存在。我尝试将 WMQ 文件夹移动到其他位置,以使路径没有空格,但我仍然遇到相同的错误。我还尝试在更改 env 变量后重新启动 RAD,但没有运气。我在这里错过了什么?
  • 我使用 MQ 队列作为 JMS 提供者。我只想为 mdb 配置侦听器端口。它要求提供连接工厂 JNDI 名称和目标 JNDI 名称。你能告诉我在哪里可以获得这些名称?我需要配置队列连接工厂吗?我是新手。请帮忙。
  • 哼,这很奇怪。我检查了我的 WAS 8.5 安装,并且这个环境变量存在。你有目录 ${WAS_INSTALL_ROOT}/lib/WMQ 吗?您是否在更改配置后重新启动了 WAS?也许您可以尝试在您安装 WMQ 客户端的目录(没有空格的位置)上设置 MQ_INSTALL_ROOT 并重新启动 WAS?
  • 抱歉,没有意识到您要设置监听端口。对于侦听器端口,您应该同时定义队列连接工厂和队列。
  • 这里可能需要澄清一点:WebSphereMQ 客户端作为 WAS 安装的一部分安装为 RAR(资源存档),其作用类似于 JCA 适配器。我认为你应该使用这个嵌入式 JCA 适配器。
【解决方案2】:

错误消息意味着您已将连接工厂配置为具有绑定的传输类型,因此 WAS 中的 WMQ 资源适配器需要加载位于 MQ 安装中的本机库(注意 MQ 客户端安装不附带这些图书馆)。

假设您想以绑定模式连接,并且您在 WAS 服务器所在的同一台机器上安装了完整的本地 MQ 服务器,那么您需要在 WAS 中的 WebSphere MQ 消息传递提供程序面板上配置“本机库路径”(资源 > JMS > JMS 提供者)。您应该更改与定义的队列连接工厂在同一范围内的提供程序。

MQ_INSTALL_ROOT 属性是 WAS 6.0 和 WAS 6.1 中使用的旧属性,仅用于 WAS 7 及更高版本中的迁移原因。

注意:如果您有 ND 环境,则“测试连接”操作可能会在 dMgr 进程而不是服务器上运行。如果您的 dMgr 在不同的主机上,则不会找到这些库。在这种情况下,您应该在选择“测试连接”按钮之前确保应用程序服务器正在运行。

【讨论】:

  • 问题已解决。我使用传输类型作为“绑定”而不是“绑定,然后是客户端”来连接到 MQ。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 1970-01-01
相关资源
最近更新 更多