2

当我尝试通过创建外部服务器从 Weblogic Server(WLS) 连接到部署在远程服务器上的 MQ 时,我遇到了两个问题。1. 当我尝试以绑定模式连接到 MQ Queuemanager 时(导入 .Bindings 文件后),我在 WLS 控制台中不断收到以下错误:

java.lang.UnsatisfiedLinkError: java.library.path 中没有 mqjbnd05

  1. 如果我将传输切换到客户端,我会不断收到:

JMSWMQ0018:无法使用连接模式“客户端”和主机名“localhost”连接到队列管理器“”。检查队列管理器是否已启动,如果在客户端模式下运行,请检查是否有正在运行的侦听器。请参阅链接的异常以获取更多信息。

有没有人看到这一点,是否有任何性能影响决定使用客户端而不是绑定,反之亦然?

TIA

4

2 回答 2

1

如果问题表明我尝试从 Weblogic Server 连接到部署在远程服务器上的 MQ,我认为这意味着 WLS 和 WMQ 位于两个不同的主机上。如果是这种情况,那么绑定模式连接(依赖于共享内存段)将不起作用。

客户端模式连接似乎使用指向 localhost 而不是 WMQ 服务器的 IP 或主机名的 CF。这适用于与队列管理器位于同一主机上的应用程序,但当应用程序和 QMgr 位于不同的服务器上时则不行。

至于在客户端和绑定模式之间进行选择,答案是如果 QMgr 是本地使用绑定。这提供了最高的可靠性、最佳性能和 XA 事务性。使用客户端模式时,如果没有扩展事务客户端,则不支持两阶段 XA 提交。根据 JMS 规范,如果应用程序在 COMMIT 调用期间失去连接,则可能存在歧义。根据应用程序处理此问题的方式,最终可能会出现重复消息。(JMS 规范将这些称为“功能重复”。)绑定模式连接不太可能发生这种歧义因为没有网络延迟,甚至没有任何 IP 堆栈或接口的遍历。所以尽可能使用绑定模式。

更新:
删除了关于扩展事务客户端是收费组件的注释。 4月24日起,XTC全平台WMQ全版本免费。

于 2010-09-13T20:53:01.357 回答
1

最后我能够解决这个问题,我不得不在客户端模式下重新创建 .bindings 文件,并对 IVTsetup.bat 进行更改,该文件很可能存在于 C:\Program Files\IBM\WebSphere MQ\java\bin 中,我必须运行这个 def qcf(psQCF) TRANSPORT(CLIENT) HOST(SMEKA) PORT(1415) CHANNEL(ps_SRV_CHANNEL) QMGR(psQM) 来生成 .bindings 文件。

有关更多详细信息,请参阅此链接:

http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_adapters.doc/doc/peoplesoft/peopleso103.htm

于 2010-09-15T04:02:54.387 回答