问题描述
我正在尝试使用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