SlideShare a Scribd company logo
1 of 16
Download to read offline
JMS
java messaging
    service

       bolkimen@yahoo.com
General concepts
Producer/Publisher                                     Consumer/Subscriber




                             QueueTopic


                 Message >      JMS        Message >
                              provider

                                 ...
                                 ...
Queues

 Producer           Consumer




            Queue
Topics

  Producer   Topic   Consumer
Message types

JMS specification provides standard implementations of javax.jms.Message:

1.   javax.jms.BytesMessage - array of bytes

2.   javax.jms.MapMessage - key-value pairs

3.   javax.jms.ObjectMessage - serialized Java object

4.   javax.jms.StreamMessage - stream of Java primitive values

5.   javax.jms.TextMessage - Java String object (used for XML)
The working algorithm with JMS
1.   Obtain a javax.jms.ConnectionFactory using a JNDI lookup. (The default ConnectionFactory
     names are different depending on the JMS provider.)

2.   Obtain a javax.jms.Connection from the ConnectionFactory.

3.   Obtain a javax.jms.Session from the Connection.

4.   Create a javax.jms.MessageProducer or javax.jms.MessageConsumer from the Session.

5.   For a MessageProducer, send the message, or for a MessageConsumer, receive the message
     (synchronous) or set the message listener (asynchronous).

6.   Start the Connection to start message delivery.

7.   Ultimately close the Connection.
Synchronous messaging



while(true) {
      Message message = consumer.receive();
      ....
}
Asynchronous messaging
(listener class)


class AsyncConsumerMessageListener implements MessageListener {
      public void onMessage(Message message) {
      TextMessage msg = (TextMessage) message;
      ....
      }
}
Asynchronous messaging
(listener class usage)



AsyncConsumerMessageListener asyncConsumer = new AsyncConsumerMessageListener();

MessageConsumer consumer = session.createConsumer(destination);

consumer.setMessageListener(asyncConsumer);
Spring
amqConnectionFactory


<bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">

      <property name="brokerURL" value="${jms.url}" />

</bean>



1) jms.url=tcp://localhost:61616

2) jms.url=vm://localhost
Spring
jmsQueueConnectionFactory


<bean id="jmsQueueConnectionFactory"
   class="org.springframework.jms.connection.SingleConnectionFactory">

          <property name="targetConnectionFactory" ref="amqConnectionFactory" />


</bean>
Spring
listener-container

<jms:listener-container
      connection-factory="jmsQueueConnectionFactory"
      destination-type="queue" container-type="default">

           <jms:listener
                 destination="TESTQUEUE"
                 ref="webConsumer"
                  method="onMessage" />

</jms:listener-container>
Spring
jmsTemplate



<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">

          <constructor-arg ref="jmsQueueConnectionFactory" />

</bean>
Spring
message listener



@Component
public class WebConsumer implements MessageListener
{
  public void onMessage( final Message message ) {…}
}
Spring
producer
@Component
public class WebProducer
{
      @Autowired
      private JmsTemplate jmsTemplate;

     public void send(String message) throws JMSException
     {
           jmsTemplate.convertAndSend("TESTQUEUE", message);
     }
}
Sources & useful links


1.   Official JMS tutorial book

2.   http://www.thirdeyeconsulting.com/indyjug/jms/jms.html

3.   http://www2.sys-con.com/itsg/virtualcd/Java/archives/0604/chappell/index.html

More Related Content

Similar to Jms слайды

Message Driven Beans (6)
Message Driven Beans (6)Message Driven Beans (6)
Message Driven Beans (6)
Abdalla Mahmoud
 
Test DB user
Test DB userTest DB user
Test DB user
techweb08
 
test validation
test validationtest validation
test validation
techweb08
 
Java message service
Java message serviceJava message service
Java message service
Veeramani S
 
Introduction to JMS and Message-Driven POJOs
Introduction to JMS and Message-Driven POJOsIntroduction to JMS and Message-Driven POJOs
Introduction to JMS and Message-Driven POJOs
Matt Stine
 

Similar to Jms слайды (20)

Jms
JmsJms
Jms
 
Jms
JmsJms
Jms
 
Jms
JmsJms
Jms
 
Message Driven Beans (6)
Message Driven Beans (6)Message Driven Beans (6)
Message Driven Beans (6)
 
Jms intro
Jms introJms intro
Jms intro
 
Jms
JmsJms
Jms
 
Jms queues
Jms queuesJms queues
Jms queues
 
Weblogic - Introduction to configure JMS
Weblogic  - Introduction to configure JMSWeblogic  - Introduction to configure JMS
Weblogic - Introduction to configure JMS
 
Test DB user
Test DB userTest DB user
Test DB user
 
test validation
test validationtest validation
test validation
 
Java message service
Java message serviceJava message service
Java message service
 
Jms topics
Jms topicsJms topics
Jms topics
 
Introduction to JMS and Message-Driven POJOs
Introduction to JMS and Message-Driven POJOsIntroduction to JMS and Message-Driven POJOs
Introduction to JMS and Message-Driven POJOs
 
Jms introduction
Jms introductionJms introduction
Jms introduction
 
Mule jms-topics
Mule jms-topicsMule jms-topics
Mule jms-topics
 
Java Messaging Services
Java Messaging ServicesJava Messaging Services
Java Messaging Services
 
Messaging in Java
Messaging in JavaMessaging in Java
Messaging in Java
 
JMS
JMSJMS
JMS
 
M messaging 2
M messaging 2M messaging 2
M messaging 2
 
Spring JMS
Spring JMSSpring JMS
Spring JMS
 

Jms слайды