消息选择器不工作的消费者
Consumer with message selector not working
我有一个简单的消费者:
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”选择器的消息。
定义选择器似乎很简单,但它对我不起作用。
谢谢。
选择器不处理消息的body(即您的JSON数据)。它们仅对消息的 headers 和属性起作用。
我有一个简单的消费者:
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”选择器的消息。 定义选择器似乎很简单,但它对我不起作用。
谢谢。
选择器不处理消息的body(即您的JSON数据)。它们仅对消息的 headers 和属性起作用。