Friday, January 12, 2007

JMS redux

Quick explanation on what JMS is from Java/J2EE planet

1. What is JMS ?
A. JMS (JAVA MESSAGING SERVICE) is an API .It is a specification with one
package javax.jms .It is a technology which can pass the information
synchronously or asynchronously .

2. On what technology is JMS based ?
A. JMS is based on Message-Oriented MiddleWare (MOM).

3. What was the technology for messaging services before JMS was released?
A. Before JMS API specification was released by javasoft ,there was
IBM’s MQSeries implementation of MOM (Message-Oriented MiddleWare).

4. What is MOM (Message-Oriented MiddleWare) ?
A. MOM is a software infrastructure that asynchronously connects multiple
system’s through the production and consumption of data message.

5. How many types of data passing does JMS specification allows ?What are they?
A. JMS specification allows two types of data passing.
a)publish/subscribe [pub/sub model]
b)point-to-point [p-t-p model]

6. In real time which type of data passing is used ?
A. Mostly in real time applications we use both types of data passing combinedly.

7. How jndi is used in JMS ?
A. While writing JMS application (pub/sub or p-t-p) we need TopicConnection or
QueueConnection . we use jndi to get this connections .

8. Write the steps to write pub/sub model application ?
A.
steps to write Publisher (sender) application :-
a)We have to get the TopicConnection through jndi.
b)Create TopicSession by invoking a method createTopicSession() .
c)create a Topic object by invoking createTopic() on TopicSession interface.
d)create a TopicPublisher object of a Topic by invoking createPublisher(javax.jms.Topic t)
on TopicSession.(t is a Topic object that specifies the Topic we want to subscribe to).
e)create TextMessage object and set the text to be published .
f)publish the message by using a method publish() in Publisher interface .
steps to write subscriber (receiver) application :-
a)We have to get the TopicConnection through jndi.
b)Create TopicSession by invoking a method createTopicSession() .
c)create a Topic object by invoking createTopic() on TopicSession interface.
d)create a TopicSubscriber object of a Topic by invoking createSubscriber(javax.jms.Topic) or
createDurableSubscriber(javax.jms.Topic t,String name,String messageselector,boolean nolocal) on TopicSession.
t ------> is a Topic object that specifies the Topic we want to subscribe to.
name ---> is a String that indicates the name under which to maintain the Durable Subscribtion to the specified topic.
messageselector --> is a String that defines selection criteria.
nolocal -------> is a boolean if it is true the Subscriber will not recive messages that were published by the client application .

9. What is the diffrence between DurableSubscription and non-DurableSubscription ?
A.
DurableSubscription :-
DurableSubscription indicates that the client wants to recive all the messages published to a topic,
including messages published when the client connection is not active.
Non-DurableSubscription :-
Non-DurableSubscription will not recive the messages published when the client connection is not active.

10. Write the steps to write p-to-p model application ?
A.
steps to write Sender application :-
a)We have to get the QueueConnection through jndi.
b)Create QueueSession by invoking a method createQueueSession() .
c)Create a Queue object by invoking createQueue() on QueueSession interface.
d)Create a QueueSender object of a Queue by invoking createSender(javax.jms.Queue q)
on QueueSession.
e)Create TextMessage object and set the text to be send .
f)Send the message by using a method send() .
steps to write Receiver application :-
a)We have to get the QueueConnection through jndi.
b)Create QueueSession by invoking a method createQueueSession() .
c)Create a Queue object by invoking createQueue() on QueueSession interface.
d)Create a QueueReceiver object of a Queue by invoking createReceiver(javax.jms.Queue) on QueueSession.