【发布时间】:2015-09-02 19:35:02
【问题描述】:
当使用 IBM.XMS 向不存在的主题发送消息时,不会引发异常。当尝试对队列进行相同操作时,我会收到队列管理器或队列不存在的通知。
这是我创建连接并向主题发送消息的方式:
XMSFactoryFactory xmsFactoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
IConnectionFactory ibmConnectionFactory = xmsFactoryFactory.CreateConnectionFactory();
ibmConnectionFactory.SetStringProperty(XMSC.WMQ_HOST_NAME, "frimasrv");
ibmConnectionFactory.SetIntProperty(XMSC.WMQ_PORT, 1415);
ibmConnectionFactory.SetStringProperty(XMSC.WMQ_CHANNEL, "CH1");
ibmConnectionFactory.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
ibmConnectionFactory.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "API");
IConnection connection = ibmConnectionFactory.CreateConnection();
connection.ClientID = "client id";
ISession session = connection.CreateSession(false, AcknowledgeMode.AutoAcknowledge);
IDestination destination = session.CreateTopic("this.does.not.exist");
IMessageProducer producer = session.CreateProducer(destination);
IMessageConsumer durableConsumer = session.CreateDurableSubscriber(destination, "subscriptionName");
IMessage myMessage = session.CreateTextMessage("text");
producer.Send(myMessage);
用 session.CreateQueue(...) 补充 session.CreateTopic(...) 的调用, session.CreateProducer(...) 会失败。这也是我在使用主题时所期望的行为。
我的问题是:
发送到不存在的主题时怎么没有问题? 我的部分配置错误吗? 是否有其他方法可以验证主题是否确实存在?
【问题讨论】: