通过SSL连接到IBM MQ的C++客户端

通过SSL连接到IBM MQ的C++客户端

问题描述:

我需要使用客户端通道定义表更改C++代码以与WebSphere MQ连接。在Windows 2003 v6.0中,大约有5000多个MQ客户端和10个MQ服务器。如果任何人使用C++与CCDT,请帮助我。通过SSL连接到IBM MQ的C++客户端

+0

XML文件具有MQ服务器连接信息,如主机名,队列管理器名称,通道和端口。客户端首先尝试连接到xml文件中的第一个队列管理器,如果它无法建立连接,那么它将用于第二个队列管理器。客户端连接不负载均衡,并且所有服务器都在群集中。我确信使用MQCONN进行连接的客户端也将与开发人员一样确认。我阅读了v7.0中关于自动重新连接的新功能,以及客户端从客户端通道定义表中随机选择队列管理器。 – 2010-06-16 06:08:41

+0

MQCONN和MQCONNX的区别很大。如果XML文件包含主机,通道和端口,则应用程序使用MQCONNX,它允许您指定所有连接详细信息。在这种情况下,需要将SSL CipherSpec添加到连接选项,如下所述:http://bit.ly/aMLFnO当然,您仍然需要告诉应用程序在哪里可以找到KDB文件,那就是SSLKEYR环境变量,如前所述。 – 2010-06-16 18:12:24

+0

要找出使用MQCONN或MQCONNX的应用程序,下面的命令跟踪MQ API调用是否有帮助? strmqtrc -x all -t api(在Windows上) strmqtrc -t api – Nikhil 2010-06-16 21:05:24

将MQCHLLIB和MQCHLTAB环境变量设置为指向通道表,如“Using WebSphere MQ environment variables”中所述。接下来,按照手册的相同部分所述设置SSLKEYR。这些将允许应用程序找到CCDT和KDB文件。确保CCDT包含指定正确的SSLCIPH的通道定义,然后照常连接。不需要更改代码。

一句忠告,使用WMQ v7客户端,即使服务器在v6。只要您不尝试使用自动重新连接等v7功能,客户端就可以向后兼容。但是,v6明年即将面世,如果您想避免重新测试和重新部署 - 或者运行不受支持的版本 - 请尽可能在v7组件上进行部署。

+0

Hi Rob, 感谢您的快速响应。我是MQ Admin,应用程序团队中没有任何人使用C++代码,因为他们使用8年前开发的相同代码。代码从.xml文件获取MQ连接参数。如果代码中没有什么需要更改,那么默认情况下,客户端使用.xml文件连接到队列管理器。如果我错了,请纠正我。 – Nikhil 2010-06-16 00:17:41

+0

取决于XML文件中的内容以及应用程序的连接方式。如果应用程序使用MQCONNX并且当前没有填写SSL参数,那么它确实需要更改。另一方面,如果应用程序正在使用CCDT,那么添加SSLKEYR环境变量将允许它查找KDB文件并构建新的包含SSL通道参数的CCDT将完成转换。因此,这取决于应用程序的编码方式,以了解哪些是正确的操作。 – 2010-06-16 01:33:58