You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Das, Kapali Tejeswar" <te...@iona.com> on 2007/02/20 22:14:14 UTC

question on QPID header-based routing test

There was a QPID headers test in
java/client/test/src/org/apache/qpid/headers directory that was later
moved to java/client/src/old_test/java/org/apache/qpid/headers
directory. Could somebody let me know why it was moved to old_test
directory?

 

The reason I am asking is that we wrote a headers demo based on this
test that used to work back in December. But it no longer works now; the
broker does not route the messages to the consumer.

 

Specifically, when I start the consumer (with debug logs), I am seeing
the following log, which indicates that there was a problem while
processing BasicConsumeOk message.

 

/////////////////////////

[java] 2007-02-20 16:07:33,062 DEBUG [AnonymousIoService-8]
state.AMQStateManager (AMQStateManager.java:172) - Looking for state
transition handler for frame class
org.apache.qpid.framing.BasicConsumeOkBody

[java] 2007-02-20 16:07:33,078 DEBUG [AnonymousIoService-8]
state.AMQStateManager (AMQStateManager.java:172) - Looking for state
transition handler for frame class
org.apache.qpid.framing.BasicConsumeOkBody

[java] 2007-02-20 16:07:33,078 DEBUG [AnonymousIoService-8]
state.AMQStateManager (AMQStateManager.java:187) - No state transition
handler defined for receiving frame class
org.apache.qpid.framing.BasicConsumeOkBody Class: 60 Method: 21
consumerTag: 1

[java] 2007-02-20 16:07:33,078 DEBUG [main] client.BasicMessageConsumer
(BasicMessageConsumer.java:227) - Session stopped : Message
listener(demo.headers.Listener@15718f2) set for destination
headers://test_headers_exchange/test_headers_exchange/?exclusive='true'&
autodelete='true'

/////////////////////////

 

Here's a snippet of the code where I am creating a consumer:

 

//////////////////////////////////

 

    public MessageConsumer createConsumer(Destination source) throws
Exception

    {

 

        FieldTable binding = FieldTableFactory.newFieldTable();

        binding.setString("SF1000", "value");

 

        return _session.createConsumer(

            source,

            AMQSession.DEFAULT_PREFETCH_HIGH_MARK,

            AMQSession.DEFAULT_PREFETCH_LOW_MARK,

            false,

            true,

            null,

            binding

        );

    }

 

//////////////////////////////////

 

I am wondering if the AMQP APIs that define a binding between an
exchange and a consumer have changed.

 

Any feedback is much appreciated.

 

Thanks and regards

Tejeswar

 


Re: question on QPID header-based routing test

Posted by Bhupendra Bhardwaj <bh...@gmail.com>.
Hi,

I just had a look at those tests under org.apache.qpid.headers, and when I
changed the binding as follows for the consumer and publisher in the
MessageFactory, the test are working-


FieldTable getConsumerBinding()
    {
        ........

        binding.setString("F0000", "value");
        ----------
    }

    FieldTable getControllerBinding()
    {
        ...........
        binding.setString("CONTROL", "value");
        ......

    }
This is required for message headers to match the consumer binding.  I don't
know what has changed, because as you said, these were working earlier.
I hope this helps.

Regards,
Bhupendra



On 2/21/07, Martin Ritchie <ri...@apache.org> wrote:
>
> I haven't done any work on the headers exchange. As far as I know
> nothing has changed on the exchange. However there has been a lot of
> changes since the rename and some may have an affect, Virtual Hosts
> will be one. If you are only using the one connection then that won't
> be the issue but if you are using multiple connections then the VHosts
> will have to be the same. I may get some time later next week to have
> a look. I just need to get Rollback/Recover working.
>
> On 21/02/07, Kodichath, Suresh <Su...@iona.com> wrote:
> > Hi Martin,
> > Thanks, but do you or others in the list see any issues with supporting
> > this in Qpid. When we tried to run this we see that the messages are
> > reaching  the broker, but are not getting routed to the client side.
> > Also this was working earlier. Has anything changed recently that might
> > be causing this?.
> >
> > Regards,
> > Suresh
> >
> > -----Original Message-----
> > From: martin.a.ritchie@googlemail.com
> > [mailto:martin.a.ritchie@googlemail.com] On Behalf Of Martin Ritchie
> > Sent: Wednesday, February 21, 2007 5:26 AM
> > To: qpid-dev@incubator.apache.org
> > Subject: Re: question on QPID header-based routing test
> >
> > On 20/02/07, Das, Kapali Tejeswar <te...@iona.com> wrote:
> > > There was a QPID headers test in
> > > java/client/test/src/org/apache/qpid/headers directory that was later
> > > moved to java/client/src/old_test/java/org/apache/qpid/headers
> > > directory. Could somebody let me know why it was moved to old_test
> > > directory?
> > >
> > >
> > >
> > > The reason I am asking is that we wrote a headers demo based on this
> > > test that used to work back in December. But it no longer works now;
> > the
> > > broker does not route the messages to the consumer.
> > >
> > >
> > >
> > > Specifically, when I start the consumer (with debug logs), I am seeing
> > > the following log, which indicates that there was a problem while
> > > processing BasicConsumeOk message.
> > >
> > >
> > >
> > > /////////////////////////
> > >
> > > [java] 2007-02-20 16:07:33,062 DEBUG [AnonymousIoService-8]
> > > state.AMQStateManager (AMQStateManager.java:172) - Looking for state
> > > transition handler for frame class
> > > org.apache.qpid.framing.BasicConsumeOkBody
> > >
> > > [java] 2007-02-20 16:07:33,078 DEBUG [AnonymousIoService-8]
> > > state.AMQStateManager (AMQStateManager.java:172) - Looking for state
> > > transition handler for frame class
> > > org.apache.qpid.framing.BasicConsumeOkBody
> > >
> > > [java] 2007-02-20 16:07:33,078 DEBUG [AnonymousIoService-8]
> > > state.AMQStateManager (AMQStateManager.java:187) - No state transition
> > > handler defined for receiving frame class
> > > org.apache.qpid.framing.BasicConsumeOkBody Class: 60 Method: 21
> > > consumerTag: 1
> > >
> > > [java] 2007-02-20 16:07:33,078 DEBUG [main]
> > client.BasicMessageConsumer
> > > (BasicMessageConsumer.java:227) - Session stopped : Message
> > > listener(demo.headers.Listener@15718f2) set for destination
> > >
> > headers://test_headers_exchange/test_headers_exchange/?exclusive='true'&
> > > autodelete='true'
> > >
> > > /////////////////////////
> > >
> > >
> > >
> > > Here's a snippet of the code where I am creating a consumer:
> > >
> > >
> > >
> > > //////////////////////////////////
> > >
> > >
> > >
> > >    public MessageConsumer createConsumer(Destination source) throws
> > > Exception
> > >
> > >    {
> > >
> > >
> > >
> > >        FieldTable binding = FieldTableFactory.newFieldTable();
> > >
> > >        binding.setString("SF1000", "value");
> > >
> > >
> > >
> > >        return _session.createConsumer(
> > >
> > >            source,
> > >
> > >            AMQSession.DEFAULT_PREFETCH_HIGH_MARK,
> > >
> > >            AMQSession.DEFAULT_PREFETCH_LOW_MARK,
> > >
> > >            false,
> > >
> > >            true,
> > >
> > >            null,
> > >
> > >            binding
> > >
> > >        );
> > >
> > >    }
> > >
> > >
> > >
> > > //////////////////////////////////
> > >
> > >
> > >
> > > I am wondering if the AMQP APIs that define a binding between an
> > > exchange and a consumer have changed.
> > >
> > >
> > >
> > > Any feedback is much appreciated.
> > >
> > >
> > >
> > > Thanks and regards
> > >
> > > Tejeswar
> >
> > IIRC correctly it was Steve Vinoski that re-organised the test code
> > but no further work on reorganising the tests has been done. Only two
> > JIRAs (110,114) were created requesting more testing but nothing about
> > restructuring the client tests. If you search the qpid dev archives
> > for "reorganization" you should find three threads with more details.
> >
> > --
> > Martin Ritchie
> >
>
>
> --
> Martin Ritchie
>

Re: question on QPID header-based routing test

Posted by Martin Ritchie <ri...@apache.org>.
I haven't done any work on the headers exchange. As far as I know
nothing has changed on the exchange. However there has been a lot of
changes since the rename and some may have an affect, Virtual Hosts
will be one. If you are only using the one connection then that won't
be the issue but if you are using multiple connections then the VHosts
will have to be the same. I may get some time later next week to have
a look. I just need to get Rollback/Recover working.

On 21/02/07, Kodichath, Suresh <Su...@iona.com> wrote:
> Hi Martin,
> Thanks, but do you or others in the list see any issues with supporting
> this in Qpid. When we tried to run this we see that the messages are
> reaching  the broker, but are not getting routed to the client side.
> Also this was working earlier. Has anything changed recently that might
> be causing this?.
>
> Regards,
> Suresh
>
> -----Original Message-----
> From: martin.a.ritchie@googlemail.com
> [mailto:martin.a.ritchie@googlemail.com] On Behalf Of Martin Ritchie
> Sent: Wednesday, February 21, 2007 5:26 AM
> To: qpid-dev@incubator.apache.org
> Subject: Re: question on QPID header-based routing test
>
> On 20/02/07, Das, Kapali Tejeswar <te...@iona.com> wrote:
> > There was a QPID headers test in
> > java/client/test/src/org/apache/qpid/headers directory that was later
> > moved to java/client/src/old_test/java/org/apache/qpid/headers
> > directory. Could somebody let me know why it was moved to old_test
> > directory?
> >
> >
> >
> > The reason I am asking is that we wrote a headers demo based on this
> > test that used to work back in December. But it no longer works now;
> the
> > broker does not route the messages to the consumer.
> >
> >
> >
> > Specifically, when I start the consumer (with debug logs), I am seeing
> > the following log, which indicates that there was a problem while
> > processing BasicConsumeOk message.
> >
> >
> >
> > /////////////////////////
> >
> > [java] 2007-02-20 16:07:33,062 DEBUG [AnonymousIoService-8]
> > state.AMQStateManager (AMQStateManager.java:172) - Looking for state
> > transition handler for frame class
> > org.apache.qpid.framing.BasicConsumeOkBody
> >
> > [java] 2007-02-20 16:07:33,078 DEBUG [AnonymousIoService-8]
> > state.AMQStateManager (AMQStateManager.java:172) - Looking for state
> > transition handler for frame class
> > org.apache.qpid.framing.BasicConsumeOkBody
> >
> > [java] 2007-02-20 16:07:33,078 DEBUG [AnonymousIoService-8]
> > state.AMQStateManager (AMQStateManager.java:187) - No state transition
> > handler defined for receiving frame class
> > org.apache.qpid.framing.BasicConsumeOkBody Class: 60 Method: 21
> > consumerTag: 1
> >
> > [java] 2007-02-20 16:07:33,078 DEBUG [main]
> client.BasicMessageConsumer
> > (BasicMessageConsumer.java:227) - Session stopped : Message
> > listener(demo.headers.Listener@15718f2) set for destination
> >
> headers://test_headers_exchange/test_headers_exchange/?exclusive='true'&
> > autodelete='true'
> >
> > /////////////////////////
> >
> >
> >
> > Here's a snippet of the code where I am creating a consumer:
> >
> >
> >
> > //////////////////////////////////
> >
> >
> >
> >    public MessageConsumer createConsumer(Destination source) throws
> > Exception
> >
> >    {
> >
> >
> >
> >        FieldTable binding = FieldTableFactory.newFieldTable();
> >
> >        binding.setString("SF1000", "value");
> >
> >
> >
> >        return _session.createConsumer(
> >
> >            source,
> >
> >            AMQSession.DEFAULT_PREFETCH_HIGH_MARK,
> >
> >            AMQSession.DEFAULT_PREFETCH_LOW_MARK,
> >
> >            false,
> >
> >            true,
> >
> >            null,
> >
> >            binding
> >
> >        );
> >
> >    }
> >
> >
> >
> > //////////////////////////////////
> >
> >
> >
> > I am wondering if the AMQP APIs that define a binding between an
> > exchange and a consumer have changed.
> >
> >
> >
> > Any feedback is much appreciated.
> >
> >
> >
> > Thanks and regards
> >
> > Tejeswar
>
> IIRC correctly it was Steve Vinoski that re-organised the test code
> but no further work on reorganising the tests has been done. Only two
> JIRAs (110,114) were created requesting more testing but nothing about
> restructuring the client tests. If you search the qpid dev archives
> for "reorganization" you should find three threads with more details.
>
> --
> Martin Ritchie
>


-- 
Martin Ritchie

RE: question on QPID header-based routing test

Posted by "Kodichath, Suresh" <Su...@iona.com>.
Hi Martin,
Thanks, but do you or others in the list see any issues with supporting
this in Qpid. When we tried to run this we see that the messages are
reaching  the broker, but are not getting routed to the client side.
Also this was working earlier. Has anything changed recently that might
be causing this?.

Regards,
Suresh

-----Original Message-----
From: martin.a.ritchie@googlemail.com
[mailto:martin.a.ritchie@googlemail.com] On Behalf Of Martin Ritchie
Sent: Wednesday, February 21, 2007 5:26 AM
To: qpid-dev@incubator.apache.org
Subject: Re: question on QPID header-based routing test

On 20/02/07, Das, Kapali Tejeswar <te...@iona.com> wrote:
> There was a QPID headers test in
> java/client/test/src/org/apache/qpid/headers directory that was later
> moved to java/client/src/old_test/java/org/apache/qpid/headers
> directory. Could somebody let me know why it was moved to old_test
> directory?
>
>
>
> The reason I am asking is that we wrote a headers demo based on this
> test that used to work back in December. But it no longer works now;
the
> broker does not route the messages to the consumer.
>
>
>
> Specifically, when I start the consumer (with debug logs), I am seeing
> the following log, which indicates that there was a problem while
> processing BasicConsumeOk message.
>
>
>
> /////////////////////////
>
> [java] 2007-02-20 16:07:33,062 DEBUG [AnonymousIoService-8]
> state.AMQStateManager (AMQStateManager.java:172) - Looking for state
> transition handler for frame class
> org.apache.qpid.framing.BasicConsumeOkBody
>
> [java] 2007-02-20 16:07:33,078 DEBUG [AnonymousIoService-8]
> state.AMQStateManager (AMQStateManager.java:172) - Looking for state
> transition handler for frame class
> org.apache.qpid.framing.BasicConsumeOkBody
>
> [java] 2007-02-20 16:07:33,078 DEBUG [AnonymousIoService-8]
> state.AMQStateManager (AMQStateManager.java:187) - No state transition
> handler defined for receiving frame class
> org.apache.qpid.framing.BasicConsumeOkBody Class: 60 Method: 21
> consumerTag: 1
>
> [java] 2007-02-20 16:07:33,078 DEBUG [main]
client.BasicMessageConsumer
> (BasicMessageConsumer.java:227) - Session stopped : Message
> listener(demo.headers.Listener@15718f2) set for destination
>
headers://test_headers_exchange/test_headers_exchange/?exclusive='true'&
> autodelete='true'
>
> /////////////////////////
>
>
>
> Here's a snippet of the code where I am creating a consumer:
>
>
>
> //////////////////////////////////
>
>
>
>    public MessageConsumer createConsumer(Destination source) throws
> Exception
>
>    {
>
>
>
>        FieldTable binding = FieldTableFactory.newFieldTable();
>
>        binding.setString("SF1000", "value");
>
>
>
>        return _session.createConsumer(
>
>            source,
>
>            AMQSession.DEFAULT_PREFETCH_HIGH_MARK,
>
>            AMQSession.DEFAULT_PREFETCH_LOW_MARK,
>
>            false,
>
>            true,
>
>            null,
>
>            binding
>
>        );
>
>    }
>
>
>
> //////////////////////////////////
>
>
>
> I am wondering if the AMQP APIs that define a binding between an
> exchange and a consumer have changed.
>
>
>
> Any feedback is much appreciated.
>
>
>
> Thanks and regards
>
> Tejeswar

IIRC correctly it was Steve Vinoski that re-organised the test code
but no further work on reorganising the tests has been done. Only two
JIRAs (110,114) were created requesting more testing but nothing about
restructuring the client tests. If you search the qpid dev archives
for "reorganization" you should find three threads with more details.

-- 
Martin Ritchie

Re: question on QPID header-based routing test

Posted by Martin Ritchie <ri...@apache.org>.
On 20/02/07, Das, Kapali Tejeswar <te...@iona.com> wrote:
> There was a QPID headers test in
> java/client/test/src/org/apache/qpid/headers directory that was later
> moved to java/client/src/old_test/java/org/apache/qpid/headers
> directory. Could somebody let me know why it was moved to old_test
> directory?
>
>
>
> The reason I am asking is that we wrote a headers demo based on this
> test that used to work back in December. But it no longer works now; the
> broker does not route the messages to the consumer.
>
>
>
> Specifically, when I start the consumer (with debug logs), I am seeing
> the following log, which indicates that there was a problem while
> processing BasicConsumeOk message.
>
>
>
> /////////////////////////
>
> [java] 2007-02-20 16:07:33,062 DEBUG [AnonymousIoService-8]
> state.AMQStateManager (AMQStateManager.java:172) - Looking for state
> transition handler for frame class
> org.apache.qpid.framing.BasicConsumeOkBody
>
> [java] 2007-02-20 16:07:33,078 DEBUG [AnonymousIoService-8]
> state.AMQStateManager (AMQStateManager.java:172) - Looking for state
> transition handler for frame class
> org.apache.qpid.framing.BasicConsumeOkBody
>
> [java] 2007-02-20 16:07:33,078 DEBUG [AnonymousIoService-8]
> state.AMQStateManager (AMQStateManager.java:187) - No state transition
> handler defined for receiving frame class
> org.apache.qpid.framing.BasicConsumeOkBody Class: 60 Method: 21
> consumerTag: 1
>
> [java] 2007-02-20 16:07:33,078 DEBUG [main] client.BasicMessageConsumer
> (BasicMessageConsumer.java:227) - Session stopped : Message
> listener(demo.headers.Listener@15718f2) set for destination
> headers://test_headers_exchange/test_headers_exchange/?exclusive='true'&
> autodelete='true'
>
> /////////////////////////
>
>
>
> Here's a snippet of the code where I am creating a consumer:
>
>
>
> //////////////////////////////////
>
>
>
>    public MessageConsumer createConsumer(Destination source) throws
> Exception
>
>    {
>
>
>
>        FieldTable binding = FieldTableFactory.newFieldTable();
>
>        binding.setString("SF1000", "value");
>
>
>
>        return _session.createConsumer(
>
>            source,
>
>            AMQSession.DEFAULT_PREFETCH_HIGH_MARK,
>
>            AMQSession.DEFAULT_PREFETCH_LOW_MARK,
>
>            false,
>
>            true,
>
>            null,
>
>            binding
>
>        );
>
>    }
>
>
>
> //////////////////////////////////
>
>
>
> I am wondering if the AMQP APIs that define a binding between an
> exchange and a consumer have changed.
>
>
>
> Any feedback is much appreciated.
>
>
>
> Thanks and regards
>
> Tejeswar

IIRC correctly it was Steve Vinoski that re-organised the test code
but no further work on reorganising the tests has been done. Only two
JIRAs (110,114) were created requesting more testing but nothing about
restructuring the client tests. If you search the qpid dev archives
for "reorganization" you should find three threads with more details.

-- 
Martin Ritchie