activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Tully <gary.tu...@gmail.com>
Subject Re: How to minimize send() latency for persistent msgs in transacted sessions keeping JMSExceptions synchronuos?
Date Fri, 29 Jan 2010 09:36:32 GMT
On 29 January 2010 08:15, Fred Moore <fred.moore77@gmail.com> wrote:

> Hi Gary,
>
> thanks for your answer... a few more related questions (remember that we
> only use persistent msgs in transacted sessions):
>
> 1\ You suggest  copyMsgOnSend=false as a way to alleviate some the effects
> of performing sync send(): what is the QoS/functional price to pay when
> copyMsgOnSend is turned off?
>
> The only implication is that any modifications you make to he message after
a send may or may not be visible to the broker. Once you treat the message
as immutable after a send there is not down side.


> 2\ What are the main parameters to tune to try to make transacted sync
> send() "as *async as possible" (e.g. paying the sync price at commit() time
> but not every single send())?
>
> The defaults are fine. It will use async send for all messages and a sync
send for the transaction commit, but with a memory limit and
sendFailIfNoSpace, any of the individual sends may fail and as they are sent
async, you need to register an exception listener to catch that potential
failure.


> Cheers,
> F.
>
>
>
> On Thu, Jan 28, 2010 at 6:00 PM, Gary Tully <gary.tully@gmail.com> wrote:
>
> > If you don't want to use an ExceptionListener then you need to have every
> > send synced with the broker, so you need alwaysSyncSend.
> > However, this will give the worst latency so you may want to have a pool
> of
> > producers on separate connections so that you can get some parallelism.
> >
> > If you can live with using an ExceptionListener then the default
> (asyncSend
> > for messages in a transaction) will work fine.
> > Also set copuMsgOnSend=false to save some cycles on each send.
> >
> >
> > On 28 January 2010 16:47, Fred Moore <fred.moore77@gmail.com> wrote:
> >
> > > Hi folks,
> > >
> > > we have a fast producer sending persistent messages in transaction and
> > > committing them every X msgs or Y seconds, our requirements are:
> > >
> > > 1\ ability to minimize the send() latency (and overall performance)
> > >
> > > 2\ ability to detect any JMSExceptions at commit() time (or at send()
> > time)
> > > and catching them in the producer thread without resorting to using
> > > ExceptionListeners()... this is to allow us to perform a timely
> detection
> > > and management of <systemUsage> related JMSExceptions.
> > >
> > > What is the "golden mix" of these queue connection factory attributes
> > that
> > > you recommend in this scenario:
> > >
> > > * useAsyncSend
> > > * alwaysSessionAsync
> > > * alwaysSyncSend
> > > * sendAcksAsync
> > >
> > > Cheers,
> > > F.
> > >
> >
> >
> >
> > --
> > http://blog.garytully.com
> >
> > Open Source Integration
> > http://fusesource.com
> >
>



-- 
http://blog.garytully.com

Open Source Integration
http://fusesource.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message