useAsyncSend gave a tremendous speedup and I will try to work from here. I
need to reasonably guarantee delivery though of messages, and currently
everything is wrapped in a resender, meaning if JmsTemplate throws an
Exception, the message and all subsequent are put into a memory queue and
resending is automatically done until it succeeds. Pretty low-tech, but
works great for when/if ActiveMQ is down for short periods of time.  

By just performing a simple test, this mechanism still worked when using
async sends (shutting down ActiveMQ during sending) so I'm wondering if I
have any additional need of the exception listener, if the exception is
still (as it looks like) thrown.

// Matthias


Gary Tully wrote:
> 
> In the async case, you can set an exception listener to get a calback in
> the
> event of an async failure.
> 
> On 1 July 2010 17:11, cobrien <clark.obr...@ttmsolutions.com> wrote:
> 
>>
>> Matthias,
>> If do not require guaranteed delivery to the broker you can set
>> jms.useAsyncSend=true so the producer
>> does not wait for an acknowledgement from the broker before sending the
>> next
>> message.
>>
>> The caveat here is that if message is lost between the producer and
>> broker
>> you will not be notified.
>>
>> Clark
>>
>> www.ttmsolutions.com
>> ActiveMQ reference guide at
>> http://bit.ly/AMQRefGuide
>>
>>
>>
>>
>> matthiask wrote:
>> >
>> > I'm trying to improve the performance of our backend and is currently
>> as
>> > benchmark using a use case that takes about ~800 ms to execute and
>> > produces 40 JMS messages that are put on a queue (BytesMessage). Each
>> > message is a few kb.
>> >
>> > If I dummy out the JMS delivery, the same use case takes about 40 ms to
>> > finish, meaning that it spends most of it time waiting for messages to
>> get
>> > accepted by ActiveMQ. I have also verified this by profiling.
>> >
>> > The delivery is performed using a JmsTemplate, configured with a pooled
>> > connection factory.
>> >
>> > Without going into more detail, is this expected behavior, around 20 ms
>> or
>> > so for a message to get delivered, or am I missing something obvious
>> that
>> > could speed this up.
>> >
>> > I'm currently looking at making architectural changes that would mean
>> that
>> > the actual sending of the messages don't need to be synchronized with
>> the
>> > use case, but it would require some redesigning and I would rather see
>> > that I would be able to use the current "simple" approach with messages
>> > being sent as they are produced by the application.
>> >
>> > Any input or help would be greatly appreciated. Any more info I can
>> > provide?
>> >
>> > Matthias
>> >
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Slow-producing-of-messages%2C-expected-behaviour--tp29044897p29047632.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> http://blog.garytully.com
> 
> Open Source Integration
> http://fusesource.com
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Slow-producing-of-messages%2C-expected-behaviour--tp29044897p29106386.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to