can't open a receiver bound to application header x-match expression
See original GitHub issueI’m trying to adapt https://github.com/amqp/rhea/tree/master/examples/selector example using an x-match expression instead of a JMS expression. Tried this code:
connection.open_receiver({
source: {
address: 'amq.match',
filter: {
'x-match': 'all',
value: {
'nat': 'it',
'prod': 'a22'
}
}
}
})
Received “connection_error Expected value type is ‘Filter’ but got ‘String’ amqp:decode-error” from Qpidd Java broker (rel. 7.1.0).
Issue Analytics
- State:
- Created 5 years ago
- Comments:10 (5 by maintainers)
Top Results From Across the Web
can't open a receiver bound to application header x-match ...
I'm trying to adapt https://github.com/amqp/rhea/tree/master/examples/selector example using an x-match expression instead of a JMS expression.
Read more >Excel XMATCH function with formula examples - Ablebits
The XMATCH function is case-insensitive by nature and cannot distinguish the letter case. To distinguish lowercase and uppercase characters, ...
Read more >Part 4: RabbitMQ Exchanges, routing keys and bindings
An exchange is responsible for routing the messages to different queues with the help of header attributes, bindings, and routing keys.
Read more >3. Reference - Spring
For the header exchange, we set the binding arguments to match messages that have the header foo set to bar and the header...
Read more >AMQP 0-9-1 Model Explained - RabbitMQ
Messaging brokers receive messages from publishers (applications that publish them ... that are more easily expressed as message headers than a routing key....
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
@beaver71 The exchange concept comes from the old pre-AMQP 1.0 world (AMQP 0-x). It was those specifications that defined the behaviour of how instances of the in-built exchange types worked. amq.match (which is an instance of the “header” exchange type) was never defined as understanding message selectors. The exchange concept does not exist in AMQP 1.0 so you won’t find the concept in other AMQP providers. Apache Qpid did this to help is legacy user move to the new world.
I generally encourage message users to utilise standard messaging features when building their applications. So I echo @grs comments to use message selectors if you can for your use-case.
This works with the qpid c++ broker:
ActiveMQ does not support the headers exchange or this particular filter. The qpid java broker does support the headers exchange but I am not sure if it supports this filter definition. I’ll try and find out - certainly the code above does not work against that broker.