activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hiram Chirino" <hi...@hiramchirino.com>
Subject Re: Stomp Receipts
Date Tue, 22 Aug 2006 15:49:14 GMT
Hi Peter,

Yes.. Unfortunately this is how asynchronous messaging works.  There
is no way around it unless you switch to a request/reply model like
HTTP uses.  But then you loose all the performance gains that a
asynchronous model provides!

If your application is single threaded, you should place those
unexpected messages into a buffer while your are polling for your
response.  Then when your application does a receive(), it should
first check that buffer for messages and nothing is there, then it
should wait on the socket for dispatched messages.


On 8/22/06, blueshed <pete@blueshed.co.uk> wrote:
>
> Yup, the prefetchSize is 1 - but still I get back the MESSAGE before the
> RECEIPT. The ACK is required before more messages such as RECEIPT can come
> through.
>
> Perhaps this will explain:
>
> ->CONNECTED
> <-SUBSCRIBE
> ->MESSAGE
> <-ACK
> ->RECEIPT(SUBSCRIBE)
> ->RECIEPT(ACK)
>
> I hoped I could run it like this:
>
> ->CONNECTED
> <-SUBSCRIBE
> ->RECEIPT(SUBSCRIBE)
> ->MESSAGE
> <-ACK
> ->RECIEPT(ACK)
>
> PeterB
> PS. Thanks for getting back to first mail so quickly.
>
>
>
>
>
> James.Strachan wrote:
> >
> > If you set the prefetchSize to 1 then you will only be given 1 message
> > by your subscription so that you can ACK the message, then you'll be
> > given another message etc.
> >
> > http://incubator.apache.org/activemq/stomp.html
> >
> > e.g. add the following header
> >
> > activemq.prefetchSize: 1
> >
> > More background here
> > http://incubator.apache.org/activemq/what-is-the-prefetch-limit-for.html
> >
> > On 8/22/06, blueshed <pete@blueshed.co.uk> wrote:
> >>
> >> I have built an asynchronous stomp client that works well enough. I tried
> >> to
> >> introduce a synchronous stomp client but came across a problem: reciepts
> >> are
> >> sent out of order. When I send a SUBCRIBE I get a MESSAGE back before the
> >> RECEIPT - the MESSAGE requires an ACK before I get any more messages. The
> >> ACK too requests a RECEIPT and then two RECEIPTS come back. I would like
> >> my
> >> Stomp Client to work with Twisted Python and it is single threaded. I
> >> would
> >> like to work with messages in order with as little state as possible. Any
> >> thoughts? Could message consumption on the server complete the
> >> consumption
> >> before sending more messages?
> >> --
> >> View this message in context:
> >> http://www.nabble.com/Stomp-Receipts-tf2145063.html#a5921824
> >> Sent from the ActiveMQ - User forum at Nabble.com.
> >>
> >>
> >
> >
> > --
> >
> > James
> > -------
> > http://radio.weblogs.com/0112098/
> >
> >
>
> --
> View this message in context: http://www.nabble.com/Stomp-Receipts-tf2145063.html#a5924444
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 
Regards,
Hiram

Blog: http://hiramchirino.com

Mime
View raw message