我正在配置Web应用程序以通过WMQ连接到另一个Web应用程序。
当两个应用程序连接到同一本地服务器时,MQ配置在本地工作正常。
但是,当我在自己的服务器上部署每个应用程序时,我遇到了CCDT错误。
服务器1 - 通过远程JNDI连接到服务器2
服务器2 - 保存WMQ连接工厂,队列和激活规范。
测试时,在Server 1日志中,它会显示以下异常消息。令我困惑的是,当服务器2被配置为通过CCDT连接到MQ时,服务器1如何查找TAB文件。此外,服务器2不包含任何例外。
任何想法我做错了什么配置?
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2278;AMQ9516: File error occurred. [1=java.io.FileNotFoundException[\ccdt\CCDT.tab (The system cannot find the path specified.)],3=file:/ccdt/CCDT.tab]
at com.ibm.mq.jmqi.system.internal.CCDT.parse(CCDT.java:333)
at com.ibm.mq.jmqi.system.internal.CCDT.<init>(CCDT.java:191)
at com.ibm.mq.jmqi.remote.internal.system.RemoteCCDT.<init>(RemoteCCDT.java:68)
at com.ibm.mq.jmqi.remote.internal.RemoteFAP.getCcdt(RemoteFAP.java:413)
at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1580)
at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1286)
at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:367)
答案 0 :(得分:0)
我认为这里有一些混乱。
您的远程JNDI调用创建指向服务器2的初始上下文,这意味着您正在查找服务器2上的连接工厂。
因此,如果服务器2上的连接工厂配置了CCDT,那么当服务器1使用服务器2的连接工厂进行连接尝试时,它也将使用CCDT,因为它是什么JNDI中的定义包含。
这有意义吗?
我建议您:
a)在没有配置CCDT的情况下,使用不同的名称在远程JNDI中创建第二个连接工厂。所以你可以拥有&#39; ccdtCF&#39;和&#39; cf&#39;例如。然后,您可以在应用程序服务器上配置应用程序以使用相应的cf。
b)在您希望配置的每台服务器上使用本地JNDI。
c)确保所有客户端在所有服务器上以相同的方式连接。要么所有CCDT(和CCDT都需要在同一个文件系统位置),要么没有CCDT连接。
答案 1 :(得分:0)
您有以下解决方案:
通常更容易在使用它的应用程序本地创建资源。