【发布时间】:2019-12-21 05:32:03
【问题描述】:
我正在尝试使用 XMS 版本 9.1 将消息放在 REMOTE 队列中。 MQ 服务器也升级到 9.1,但我的消息没有发送到远程服务器。
var cf = factoryFactory.CreateConnectionFactory();
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
cf.SetStringProperty(XMSC.WMQ_HOST_NAME, _host);
cf.SetIntProperty(XMSC.WMQ_PORT, _port);
cf.SetStringProperty(XMSC.WMQ_CHANNEL, _channel);
cf.SetIntProperty(XMSC.WMQ_CLIENT_RECONNECT_OPTIONS, XMSC.WMQ_CLIENT_RECONNECT_Q_MGR);
cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, _managerName);
_connection = cf.CreateConnection();
_session = _connection.CreateSession(false, AcknowledgeMode.AutoAcknowledge);
用不同的方法...
var queue = _session.CreateQueue(queueName);
var producer = _session.CreateProducer(queue);
var msg = _session.CreateTextMessage(message);
producer.Send(msg);
我找不到很多例子。
producer 上是否有必须设置的属性才能写入远程队列?
提前致谢。
【问题讨论】:
-
您收到什么错误?
-
无。这是主要问题。我可以在 WireShark 中看到正在发送到服务器的消息。如果我手动将相同的消息放到队列中,它会发送到转发服务器。但是用代码把它们写在队列上就不行了。
-
您是否使用 try/catch 来获取异常。例如,请参阅此示例:github.com/ibm-messaging/mq-dev-patterns/blob/master/dotnet/…
-
您在代码中使用
_connection.Start()吗? -
两者都同意。我发现任何异常并开始连接。就像我上面提到的,我在 WireShark 中看到了发送到服务器 A 的消息。