【问题标题】:Consumer with message selector not working消息选择器不工作的消费者
【发布时间】:2021-04-23 04:36:46
【问题描述】:

我有一个简单的消费者:

            try
            {
                factory = new NMSConnectionFactory(Settings.Endpoint);

                connection = factory.CreateConnection(Settings.UserName, Settings.Password);
                connection.ClientId = Settings.Name;

                session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
                destination = SessionUtil.GetDestination(session, Settings.QueueName, DestinationType.Queue);

                consumer = session.CreateConsumer(destination, "portCode = 'GB'", false);

                consumer.Listener += new MessageListener(OnMessage);         
            }
            catch
            {
                throw;
            }

当 portCode 字段等于“GB”时,我需要应用选择器来获取消息。 此队列接收许多消息。

消息采用 JSON 格式,该消息的示例如下所示:

{
  "message": {
    "list": [
      {
    xxxxxxx
      }
    ]
  },
  "header": {
    "messageCode": "xxxxxx",
    "portCode": "GB",
    "sourceSystem": "origin",
    "messageId": "ca0bf0e0-cefa-4f5a-a80a-b518e7d2f645",
    "dateTimeMessage": "2021-04-22T07:12:48.000-0300",
    "version": "1.0"
  }
}

但是,我没有使用指定的“GB”选择器接收消息。 定义选择器似乎很简单,但它不适合我。

谢谢。

【问题讨论】:

  • 谢谢。我确实很困惑:邮件标题的邮件正文的“标题”。

标签: activemq nms


【解决方案1】:

选择器作用于消息体(即您的 JSON 数据)。它们仅适用于消息的标题和属性。

【讨论】:

    猜你喜欢
    • 2016-11-24
    • 2012-11-26
    • 2021-03-06
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    相关资源
    最近更新 更多