我们正在使用 c# 开发一个控制台应用程序来访问 IBM WMQ。我们正在使用 IBM Message Service Client for .net (XMS) 和 WebSphere MQ 客户端。以下是代码示例:
XMSFactoryFactory xff = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
IConnectionFactory cf = xff.CreateConnectionFactory();
cf.SetStringProperty(XMSC.WMQ_HOST_NAME, "host");
cf.SetIntProperty(XMSC.WMQ_PORT, 1445);
cf.SetStringProperty(XMSC.WMQ_CHANNEL, "channel");
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "queueManager");
cf.SetIntProperty(XMSC.WMQ_BROKER_VERSION, XMSC.WMQ_BROKER_V1);
cf.SetStringProperty(XMSC.USERID, @"userid");
cf.SetStringProperty(XMSC.PASSWORD, @"");
IConnection conn = cf.CreateConnection();
conn.ExceptionListener = new ExceptionListener(OnXMSExceptionReceived);
Console.WriteLine("connection created");
ISession sess = conn.CreateSession(false, AcknowledgeMode.AutoAcknowledge);
我们不断收到以下错误:CWSMQ0044E:用户无权连接到队列管理器。应用程序试图在未经授权的情况下连接到队列管理器。确保该用户的队列管理器上存在适当的权限。
但是我们使用spring集成访问同一个MQ是没有问题的。这是弹簧集成的设置:
<bean id="connectionFactoryWBI" class="com.ibm.mq.jms.MQQueueConnectionFactory">
<property name="hostName" value="${hostName}" />
<property name="port" value="${port}" />
<property name="queueManager" value="${queueManager}" />
<property name="channel" value="${channel}" />
<property name="transportType" value="1" />
</bean>
<bean id="connectionFactoryWBIWithCredentials" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="connectionFactoryWBI" />
<property name="username" value="${username}" />
</bean>
我是 XMS 和 .net 的新手,不知道如何传递身份验证信息以连接到 MQ。任何建议都非常受欢迎!