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