So I am using 0.8 now and parsing is fine. Now I get a different exception
saying
"The name 'mysubscription; {create:always, delete: always,
node:{x-bindings:[{exchange:'
amq.match', arguments:{'x-match':any, 'userid':10}}]}}' supplied in the
address doesn't resolve to an exchange or a queue"


While I am sure my exchange exists, since its the default header exchange.
Any idea what I am missing here?

and this is how my property look like:
destination.header = "subscription; {create:always, delete: always,
node:{x-bindings:[{exchange:'amq.match', arguments:{'x-match':any,
'userid':10}}]}}"


Thanks,
Siamak


On Fri, May 20, 2011 at 8:31 AM, Rajith Attapattu <[email protected]>wrote:

> As mentioned 0.6 does not support the new address syntax.
> From 0.8 on wards support the new address syntax.
>
> Make sure you have the correct jar files in the patch.
> My recommendation is to move to the 0.10 release.
>
> Rajith
>
> On Thu, May 19, 2011 at 6:08 PM, qpid user 2 <[email protected]>
> wrote:
> > I added the double quotes around it and still same error.
> > Is there any difference in the grammars? I am currently using 0.6 and 0.8
> > and they both give me same error. For some coordination issues with
> others
> > in the team, I cant move on to use 0.10 at this moment :)
> >
> >
> > On Thu, May 19, 2011 at 5:55 PM, Rajith Attapattu <[email protected]
> >wrote:
> >
> >> 1. Two issues. It looks like you have an older version where the
> >> default syntax is Binding URL.
> >>     So which version are you using? I'd recommend using the latest
> >> release (0.10 release).
> >>
> >> 2. Once you fix your first problem, then use double quotes around your
> >> address string
> >>
> >> destination.header = "my-subscription-queue; {create:always,
> >> node:{x-declare:{auto-delete:True},
> >> x-bindings:[{queue:my-subscription-queue, exchange:'amq.match',
> >> arguments:{'x-match':any, 'userid':10}}]}}"
> >>
> >> Regards,
> >>
> >> Rajith
> >>
> >> On Thu, May 19, 2011 at 5:36 PM, qpid user 2 <[email protected]>
> >> wrote:
> >> > Guys. I am using the following destination address in my jndi
> property,
> >> as
> >> > advised:
> >> > destination.header = my-subscription-queue; {create:always,
> >> > node:{x-declare:{auto-delete:True},
> >> > x-bindings:[{queue:my-subscription-queue, exchange:'amq.match',
> >> > arguments:{'x-match':any, 'userid':10}}]}}
> >> >
> >> > but I am getting a parsing error when parsing for context, as follows.
> Am
> >> I
> >> > missing anything?
> >> >
> >> >
> >> > WARNING: Unable to create destination:java.net.URISyntaxException:
> Error
> >> > occured while parsing URL at index 182: my-subscription-queue;
> >> > {create:always, node:{x-declare:{auto-delete:True},
> >> > x-bindings:[{queue:my-subscription-queue, exchange:'amq.match',
> >> > arguments:{'x-match':any, 'userid':10}}]}}%^
> >> > java.net.URISyntaxException: Error occured while parsing URL at index
> >> 182:
> >> > my-subscription-queue; {create:always,
> >> node:{x-declare:{auto-delete:True},
> >> > x-bindings:[{queue:my-subscription-queue, exchange:'amq.match',
> >> > arguments:{'x-match':any, 'userid':10}}]}}%^
> >> >    at
> >> org.apache.qpid.url.BindingURLParser.<init>(BindingURLParser.java:88)
> >> >    at
> >> >
> org.apache.qpid.url.AMQBindingURL.parseBindingURL(AMQBindingURL.java:58)
> >> >    at org.apache.qpid.url.AMQBindingURL.<init>(AMQBindingURL.java:53)
> >> >    at
> >> >
> >>
> org.apache.qpid.jndi.PropertiesFileInitialContextFactory.createDestination(PropertiesFileInitialContextFactory.java:241)
> >> >    at
> >> >
> >>
> org.apache.qpid.jndi.PropertiesFileInitialContextFactory.createDestinations(PropertiesFileInitialContextFactory.java:160)
> >> >    at
> >> >
> >>
> org.apache.qpid.jndi.PropertiesFileInitialContextFactory.getInitialContext(PropertiesFileInitialContextFactory.java:117)
> >> >    at
> >> >
> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
> >> >    at
> >> > javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
> >> >    at javax.naming.InitialContext.init(InitialContext.java:223)
> >> >    at javax.naming.InitialContext.<init>(InitialContext.java:197)
> >> >    at
> >> >
> >>
> rim.core.instrumentation.subscription.Subscription.main(Subscription.java:37)
> >> > Caused by: java.lang.ArrayIndexOutOfBoundsException: 182
> >> >    at
> >> >
> >>
> org.apache.qpid.url.BindingURLParser.extractExchangeName(BindingURLParser.java:218)
> >> >    at
> >> org.apache.qpid.url.BindingURLParser.next(BindingURLParser.java:137)
> >> >    at
> >> org.apache.qpid.url.BindingURLParser.<init>(BindingURLParser.java:70)
> >> >    ... 10 more
> >> >
> >> >
> >> > Thanks
> >> > Siamak
> >> >
> >> >
> >> >
> >> > On Thu, May 19, 2011 at 10:55 AM, Gordon Sim <[email protected]> wrote:
> >> >
> >> >> On 05/19/2011 03:53 PM, Rajith Attapattu wrote:
> >> >>
> >> >>> On Thu, May 19, 2011 at 10:04 AM, Gordon Sim<[email protected]>
>  wrote:
> >> >>>
> >> >>>> On 05/19/2011 02:36 PM, qpid user 2 wrote:
> >> >>>>
> >> >>>>>
> >> >>>>> So any input on this? I am trying to construct a header exchange
> >> >>>>> subscription using JMS. How would the destination and jndi
> properties
> >> >>>>> look
> >> >>>>> like?
> >> >>>>>
> >> >>>>
> >> >>>> For python or c++ the following address is an example of what you
> >> want:
> >> >>>>
> >> >>>>  my-headers-exchange;
> >> >>>> {link:{x-bindings:[{arguments:{'x-match':all,a:b,c:d}}]}}
> >> >>>>
> >> >>>> That is assuming you have created the headers exchange named
> >> >>>> my-headers-exchange already, e.g. with qpid-config. This will match
> >> any
> >> >>>> message with both a header keyed 'a' with value 'b' and a header
> keyed
> >> >>>> 'c'
> >> >>>> with value 'd'.
> >> >>>>
> >> >>>> Unfortunately it would appear there is a bug in the JMS client
> >> preventing
> >> >>>> this from working there. (
> >> >>>> https://issues.apache.org/jira/browse/QPID-3265)
> >> >>>>
> >> >>>> An alternative address would be:
> >> >>>>
> >> >>>>  my-subscription-queue; {create:always,
> >> >>>> node:{x-declare:{auto-delete:True},
> >> >>>> x-bindings:[{queue:my-subscription-queue,
> >> exchange:my-headers-exchange,
> >> >>>> arguments:{'x-match':all,a:b,c:d}}]}}
> >> >>>>
> >> >>>> However that requires that my-subscription-queue be a unique name -
> >> not
> >> >>>> sure
> >> >>>> how well that will work for a JNDI based destination.
> >> >>>>
> >> >>>
> >> >>> I verified that the above addressing string can be specified in the
> >> >>> JNDI properties.
> >> >>>
> >> >>
> >> >> The point is not that it can't be specified in JNDI but that multiple
> >> >> consumers created from the destination obtained will all be using the
> >> same
> >> >> queue and will thus compete for messages which is not what you want.
> >> >>
> >> >> If there was only going to be one consumer that might not be an issue
> of
> >> >> course.
> >> >>
> >> >>
> >> >> ---------------------------------------------------------------------
> >> >> Apache Qpid - AMQP Messaging Implementation
> >> >> Project:      http://qpid.apache.org
> >> >> Use/Interact: mailto:[email protected]
> >> >>
> >> >>
> >> >
> >>
> >> ---------------------------------------------------------------------
> >> Apache Qpid - AMQP Messaging Implementation
> >> Project:      http://qpid.apache.org
> >> Use/Interact: mailto:[email protected]
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:[email protected]
>
>

Reply via email to