Friday, 15 July 2011

java - Jms in a swing application best practices when sending message? -



java - Jms in a swing application best practices when sending message? -

in java swing application i've implemented jms client communicates jms server. works fine.

currently when application starts create connection , session:

activemqconnectionfactory connectionfactory = new activemqconnectionfactory connection = connectionfactory.createconnection(); connection.start(); session = connection.createsession(false, session.auto_acknowledge);

next when need send message topic create topic (to send message to), temp queue (to receive replies), producer (to send message) , consumer (to actual read replies):

destination destination = session.createtopic ... messageproducer producer = session.createproducer ... destination tempdest = session.createtemporaryqueue(); messageconsumer responseconsumer = session.createconsumer(tempdest); producer.send(msg);

i wondering best practice in case?

can create when need send message or may improve save destination, messageproducer , messageconsumer somewhere , re-use it. there special need pay attending when decide re-use objects?

you should reuse objects able reuse.

the connection resused entire application, it's thread safe.

the session object not thread safe, , should stick session per thread in case.

you can cheat. utilize org.apache.activemq.pool.pooledconnectionfactory , setup pool of sessions, connections , producers.

you still have write connection.createsession(.. , session.close() take , release objects pool.

it might easier reuse objects, if have fine grained command on concurrency, seldom case.

java queue jms activemq

No comments:

Post a Comment