c# を使用して IBM WMQ にアクセスするコンソール アプリケーションを開発しています。IBM Message Service Client for .net (XMS) と WebSphere MQ Client を使用しています。コード例は次のとおりです。
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 に接続するための認証情報を渡す方法がわかりません。どんな推奨事項も大歓迎です!