Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Java Thread vs JMS Queue  RSS feed

sruthi adhuri
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All,

I�m new bee to JMS. I�ve a basic doubt. I have a Thread implementation in place which does a Job(some business logic), so that I can span n number of jobs simultaneously.

Thread Implementation:
PooledExecutor pool = new PooledExecutor(5);
for(int i=0;i<jobs.size();i++){
WorkFlowThread workFlowThread = new WorkFlowThread(jobs[i]);

JMS Implementation:

Context jmsCtx = new InitialContext();
QueueConnectionFactory qconFactory = (QueueConnectionFactory) jmsCtx.lookup("hydesJMSFactory");
QueueConnection qcon = qconFactory.createQueueConnection();
QueueSession qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = (Queue) jmsCtx.lookup("HYDESQUEUE");
QueueSender qsender = qsession.createSender(queue);
ObjectMessage omessage = qsession.createObjectMessage();
omessage.setObject(new HydesQueueMessage(messageType, jobs));

What is the basic difference between Thread and JMS queue with respect to J2EE applications.
Do we benefit with JMS approach? I appreciate any help.

Scott Selikoff
Posts: 4093
Eclipse IDE Flex Google Web Toolkit
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In short: Spawning new threads are bad in J2EE, sending to a queue is good. There's a ton of syntactical differences but what to keep in mind is that a queue is completely asynchronous listener that can get messages in any order, whereas a thread is still attached to the currently running process and has more direct access for synchronous calls.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!