Sure, take a look at http://camel.apache.org/activemq.html
especially the part on connection pooling, which essential for efficient usage of resources. Regards -- Dejan Bosanac - http://twitter.com/dejanb ----------------- The experts in open source integration and messaging - http://fusesource.com ActiveMQ in Action - http://www.manning.com/snyder/ Blog - http://www.nighttale.net On Tue, Nov 22, 2011 at 8:40 PM, Jason Dillon <ja...@planet57.com> wrote: > Is there any Camel component which could be used here to perform the hand > off of an event to a thread to encode into message and publish to a topic > which would perform optimally? > > --jason > > > On Nov 18, 2011, at 2:27 AM, Dejan Bosanac wrote: > > > Hi Jason, > > > > those operations are costly and if your component must open/close it for > > every message it will affect performances. In those cases it is > recommended > > to use pool connection factory which caches those object and improve > > performances. > > > > See http://activemq.apache.org/jmstemplate-gotchas.html for some more > info > > on this topic (in case of Spring) > > > > Regards > > -- > > Dejan Bosanac - http://twitter.com/dejanb > > ----------------- > > The experts in open source integration and messaging - > http://fusesource.com > > ActiveMQ in Action - http://www.manning.com/snyder/ > > Blog - http://www.nighttale.net > > > > > > On Fri, Nov 18, 2011 at 1:30 AM, Jason Dillon <ja...@planet57.com> > wrote: > > > >> I'm wondering what sort of overhead there is to create and then close) > the > >> components needed to send a message, specifically after you have a > started > >> connection and using a vm:// transport. > >> > >> I'm working on implementing distributed eventing for a server which > >> already has its own eventing built-in (so adapting its events to JMS > >> messages published to topics). The events can come from any thread and > be > >> sent to different topics based source event details. That seems to mean > >> that for each local event I have to: > >> > >> 1) reference destination > >> 2) create session > >> 3) create producer > >> 4) build message for event and send > >> 5 ) close producer and session (discard destination) > >> > >> #1 looks like its just object creation, but has some parsing of physical > >> name (quite a few ops as it looks like)... so could potentially cache > these > >> (trade a bit of memory for a string lookup over always creating new > >> instance)? > >> > >> Not sure what overhead there is for #2, #3 or #5. Is there any > >> documentation on roughly what these operations cost? > >> > >> The destination + session could change so #3 would have to be done > >> anyways, hopefully its cheap? If #2 is not super cheap, then perhaps > its > >> better to have the local event handler queue up the publish in a > >> BlockingQueue (or similar) so that a single thread + session (or > >> potentially small pool of thread+session) could be used to a actually > >> perform the publish? > >> > >> Does anyone have any insight on to what would be best option for least > >> overhead for this use-case? > >> > >> --jason > >