File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes EJB and other Java EE Technologies and the fly likes Java Thread vs JMS Queue Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "Java Thread vs JMS Queue" Watch "Java Thread vs JMS Queue" New topic

Java Thread vs JMS Queue

sruthi adhuri

Joined: Nov 19, 2005
Posts: 9
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
Saloon Keeper

Joined: Oct 23, 2005
Posts: 3753

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.

[OCA 8 Book] [Blog]
I agree. Here's the link:
subject: Java Thread vs JMS Queue
It's not a secret anymore!