Maybe an alternative approach to consider is to use camel routes embedded in the broker. Take a look at http://activemq.apache.org/broker-camel-component.html
On Tue, Aug 26, 2014 at 4:40 AM, Dror <dro...@hotmail.com> wrote: > Hi, > > My use case: > We get lots of small size (up to 1K) messages and we need to send them over > http for reporting purposes. > Due to performance consideration, resource utilization and readability we > would like to accumulate messages and send them in a batch of 512K (it can > also be based on number of messages). > *Requirements:* > 1. Gets high traffic volume of messages and send them over http in a > batch. > 2. On failed delivery, I need to resend the messages in another time > (Exponential backoff) > 3. No data losses (all messages need to be sent) > > For number 3: I am using an embedded persistent broker (vm:// protocol) on > the client side. > I thought about few options: > > 1. *Message aggregator on the producer side* > Producer will accumulate messages using StreamMessage object and send them > as one large message. > Disadvantage: > a. Multiple producers – so message aggregation on producer side is > somehow problematic > b. Persistency, if the system shut down un expectedly I lost the messages > > 2. *Message aggregator on the consumer side* > > Producer will send every single message and consumer will consume the > message into an internal byteBuffer when the buffer reach the 512K , they > are send as a report. > > 1. I will appreciate any advice here? > 2. Is there is a built in mechanism for that (maybe using JmsTransaction) > > Thanks in advance; > Dror > > > > > -- > View this message in context: > http://activemq.2283324.n4.nabble.com/Batch-messages-on-Producer-oR-On-consumer-side-tp4685013.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com.