使用SSL到KDPW设置.Net IBM.XMS客户端

问题描述

我正在尝试使用NEt IBM.xms连接到KDPW中的测试环境

我收到了来自KDPW的证书,该证书存储在Windows证书存储区中。

我从收到的证书中创建一个KDB文件。 KDB文件存储在目录C:\ directory中。 KDB文件名称为nameOfKdbFile.kdb

当我尝试连接时,收到错误代码

IBM.xms.xmsException:'CWSMQ0006E:调用方法ConnectionFactory.CreateConnection时收到异常:CompCode:2,原因:2538。 在执行指定方法期间,另一个组件引发了异常。

你能帮我吗?

代码

cf.SetStringProperty(xmsC.WMQ_HOST_NAME,"ipAddress");
cf.SetIntProperty(xmsC.WMQ_PORT,port);
cf.SetStringProperty(xmsC.WMQ_CHANNEL,"channel");
cf.SetIntProperty(xmsC.WMQ_CONNECTION_MODE,xmsC.WMQ_CM_CLIENT);
cf.SetStringProperty(xmsC.WMQ_QUEUE_MANAGER,"queueManager");

cf.SetStringProperty(xmsC.WMQ_SSL_PEER_NAME,"peerName");
cf.SetStringProperty(xmsC.WMQ_SSL_CIPHER_SPEC,"cipherSpec");


cf.SetStringProperty(xmsC.WMQ_SSL_KEY_REPOSITORY,@"C:\directory\nameOfKdbFile");
cf.SetStringProperty(xmsC.WMQ_SSL_CLIENT_CERT_LABEL,"ibmwebspheremquserid");

解决方法

非托管模式正在使用设置:

IConnectionFactory cf = factoryFactory.CreateConnectionFactory();


cf.SetStringProperty(XMSC.WMQ_HOST_NAME,"ipAddress");
cf.SetIntProperty(XMSC.WMQ_PORT,port);
cf.SetStringProperty(XMSC.WMQ_CHANNEL,"channel");
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE,XMSC.WMQ_CM_CLIENT_UNMANAGED);
cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER,"queueManager");

cf.SetStringProperty(XMSC.WMQ_SSL_PEER_NAME,"peerName");
cf.SetStringProperty(XMSC.WMQ_SSL_CIPHER_SPEC,"cipherSpec");

cf.SetStringProperty(XMSC.WMQ_SSL_KEY_REPOSITORY,@"C:\directory\nameOfKdbFile");
cf.SetStringProperty(XMSC.WMQ_SSL_CLIENT_CERT_LABEL,"ibmwebspheremquserid");

Kdbfile必须包含3个部分: .kdb .rdb .sth