Bug 1019150 - [AMQP 1.0] can't set alternate-exchange for subscription queue
Summary: [AMQP 1.0] can't set alternate-exchange for subscription queue
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: Development
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: 3.0
: ---
Assignee: Gordon Sim
QA Contact: Zdenek Kraus
URL:
Whiteboard:
Depends On:
Blocks: 1010399
TreeView+ depends on / blocked
 
Reported: 2013-10-15 08:35 UTC by Petr Matousek
Modified: 2015-01-21 12:57 UTC (History)
5 users (show)

Fixed In Version: qpid-cpp-0.22-20
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Apache JIRA QPID-5228 0 None None None Never

Description Petr Matousek 2013-10-15 08:35:20 UTC
Description of problem:

Using 0-10 it's possible to define an alternate exchange for the link (applied to the subscription queue) when receiving from exchange, ie:

"amq.direct/key;{link:{x-declare:{alternate-exchange: 'amq.fanout'}}}"

As the link scoped x-declare element is missing in the amqp1.0 address string, it's not possible to define the alternate exchange similar way for amqp1.0.

The intended mechanism for controlling the configuration of subscription queues is through the newly introduced 'topic' entities. These allow various subscription queue properties and an exchange to be tied together . However the properties that can be configured are limited to those passed in the 0-10 arguments. It does not include alternate-exchange.

https://issues.apache.org/jira/browse/QPID-5228

Version-Release number of selected component (if applicable):
qpid-cpp-*-0.22-19

How reproducible:
100%

Steps to Reproduce:
2. n/a


Actual results:
Unable to define alternate exchange for subscription queues

Expected results:
Alternate exchange may be defined for subscription queues

Additional info:

Comment 1 Gordon Sim 2013-10-15 12:51:16 UTC
Fixed upstream: https://svn.apache.org/r1532306

To configure a subscription queue, you need to create a topic that specifies the underlying exchange and any special options to be applied to all subscriptions from that exchange.

That can be done using the 'create' QMF method on the broker, using type 'topic' and in addition to the name, specifying at least the 'exchange' property.

There is a little test utility upstream that does this, e.g.

<qpid-home>/cpp/src/tests/qpidt create topic my-topic exchange=amq.direct alternate-exchange=amq.fanout

(assuming all python paths are set). Then creating a receiver for node 'my-topic' should result in a queue bound to amq.direct, with amq.fanout as the alternate exchange.

Comment 2 Zdenek Kraus 2014-05-23 10:56:59 UTC
this was tested on RHEL 6.5 i686 && x86_64 with following packages:
perl-qpid-0.22-12.el6
perl-qpid-debuginfo-0.22-12.el6
python-qpid-0.22-14.el6
python-qpid-qmf-0.22-31.el6
qpid-cpp-client-0.22-40.el6
qpid-cpp-client-devel-0.22-40.el6
qpid-cpp-client-devel-docs-0.22-40.el6
qpid-cpp-client-rdma-0.22-40.el6
qpid-cpp-debuginfo-0.22-40.el6
qpid-cpp-server-0.22-40.el6
qpid-cpp-server-devel-0.22-40.el6
qpid-cpp-server-ha-0.22-40.el6
qpid-cpp-server-linearstore-0.22-40.el6
qpid-cpp-server-rdma-0.22-40.el6
qpid-cpp-server-xml-0.22-40.el6
qpid-java-client-0.22-6.el6
qpid-java-common-0.22-6.el6
qpid-java-example-0.22-6.el6
qpid-proton-c-0.7-1.el6
qpid-qmf-0.22-31.el6
qpid-tools-0.22-12.el6
rh-qpid-cpp-tests-0.22-40.el6


works as expected.


Note You need to log in before you can comment on or make changes to this bug.