Why jms is used in java
Byte message is a stream of uninterrupted bytes. It contains an array of primitive bytes in its payload. For the transfer of data between two applications in their native format, byte message is used, which may be not possible with other message types.
P2P model is highly reliable and it is used in a one-to-one situation, while subscribe model is used in one-to-many situation. It is very fast but less reliable. The method invoker in RPC, waits for the method to finish execution and return back the control to the invoker. In JMS the message sender just sends the message to the destination and continues its own processing. The application client like enterprise JavaBeans components and web components can send or receive JMS message synchronously.
In addition, the application clients can also receive message asynchronously. With the help of message-driven beans, JMS provider can optionally implement the processing of messages. Message-driven beans are a type of enterprise bean that enables the asynchronous consumption of messages. The operation of sending and receiving message is carried out in distributed operation, which allows JMS operations and database accesses within a single transaction.
It is placed between the client and server, MOM provides the facility of passing message by using the technique queuing. Until the client does not request to read the message, the messages will be stored in queue. By using this technique, the software component can work independently of time. JMS is asynchronous by default. So to receive a message, the client is not required to send the request. The message will arrive automatically to the client as they become available.
Reliable JMS provides the facility of assurance that the message will delivered once and only once. You know that duplicate messages create problems. JMS helps you avoiding such problems. The JMS provides a separate domain for each approach and defines the compliance for each domain. In the point-to-point messaging domain the application is built on the basis of message queues, senders and receivers. Each and every message is addressed to a particular queue.
Queues retain all messages sent to them until the messages are consumed or expired. There are some characteristics of PTP messaging:. Publishers and subscribers are generally anonymous and can dynamically publish or subscribe to the topic.
The Topic is responsible to hold and deliver messages. The topic retains messages as long as it takes to distribute to the present clients. In the receive method will block till the message arrives or time out if the message does not arrive within a given time. Just like normal java method calls with some return value. In asynchronous message consumption, a subscriber can register or subscribe as message listener with the consumer. The client uses an object which is a connection factory used to create a connection to a provider.
Using this connection, client can have communication with the destination object to send or receive messages into Queue or Topic. Let us have an example to understand it to send the message:. Client uses an object known as destination which is used to specify the target of messages it produces and the source of message who consumes it.
The code specifies queue and a topic. The connection encapsulates the virtual connection with a JMS Provider. The connection implements the Connection interface, when it will have a ConnectionFactory object then we can use this to create a connection.
The session is a single threaded context which is used for producing and consuming messages. The sessions are used to create the following:. The session implements the Session interface and after creating a Connection object we use this to create a Session.
The message producer is an object which is created by a session and is used for sending messages to the destination. This implements the MessageProducer interface.
We use Session to create a MessageProducer for the destination, queue or topic object. The message consumer is an object which is created by a session and is used to receive messages sent at a destination. It will implement the MessageConsumer interface. We use a session to create a MessageConsumer for a destination, queue or topic object.
The message listener is an object which acts as asynchronous event handler for messages. The message listener implements the MessageListener interface which contains the one method onMessage.
In this method we define the actions to be performed when message arrives. By using setMessageListener we define the message listener with a specific MessageConsumer. The JMS messages have simple format but highly flexible, which allows to create messages which match the formats. It is very useful for beginers. I searched many articles for JMS.
But I found this with basics like from defining what is message. Really really appriciated. Your email address will not be published. JMS Architecture. JMS Messaging System. JMS in Distributed Systems. Comments Christine Casillas says:. September 1, at pm.
Dhanraj Popalghat says:. May 24, at pm. Mantu says:. September 6, at am. Raushan says:. October 20, at pm. Vijay Rajgor says:.