JMS LÀ GÌ

Quý khách hàng rất có thể viết bài xích mới.Quý khách hàng có thể "đặt hàng" bài viết.Mọi chi tiết xin mail về đến tác giả blog. Xin chân thành cảm ơn sự hiệp tác của các bạn!

Recent Posts

Archives

ArchivesSelect Month August 2011 (1) March 2011 (1) June 2010 (1) January 2010 (1) September 2009 (1) May 2009 (1) March 2009 (1) December 2008 (3) November 2008 (1) October 2008 (1) October 2007 (1)

Subscribe

Các ý kiến sát đây

Các trang được yêu thích


Đừng suy nghĩ chúng ta được bao nhiêu điểm. Đừng suy nghĩ bàn sinh hoạt ngơi nghỉ ngôi trường nào. Đừng nghĩ về bạn xuất sắc nghiệp một số loại gì. Hãy nghĩ: MÌNH CÓ GÌ TRONG ĐẦU.

Bạn đang xem: Jms là gì


Pages

C#CTDLJ2EEEJBEJB 2.x cùng với NetBeans 6.7.1 và Jboss khủng AS 4.23GAEJB 3Java MailJMSRMIJavaLập trình java cănbảncác bài luyện tập chương4GUI applicationLập trình java nângcaoCác chủ đềkhácJDBC – Java DatabaseConnectivityJPA – Java PersistenceAPINetworkingdi động DevAndroid developmentMy GardenÂm nhạcSeminarMy ProjectsSEVisual BasicWebASPhường.NetHost ứng dụngwebJSF – Java ServerFaceJquái dị RichFacesRichFaces: Logon và RegistrationapplicationJSPServlet programmingStrutsWeb servicesC# Web servicesJava Web servicesTạo Web services cùng với JAX-WS 2.0 và Java SE 6PlatformXMLJXML – JSPXSLT Examples

Blog Stats

2,914,082 hits

Email Subscription

Enter your tin nhắn address to subscribe lớn this blog và receive sầu notifications of new posts by email.


Join 2,199 other followers


Thư điện tử Address:

Sign me up!


JMS – ví dụ làm việc cùng với Point-To-Point Model với Publish-and-Subscribe Model

JMS

PDF version here

Giới thiệu

Mô hình Point-to-Point Messaging

Mô hình PTP messaging dùng đến bài toán chuyển nhượng bàn giao các thông điệp theo kiểu đối chọi, Có nghĩa là mỗi thông điệp chỉ được trao 1 lần vì 1 client. Nó được gây ra dựa vào quan niệm message queue(mặt hàng các thông điệp). Mỗi thông điệp được gửi đến một hàng được chỉ định; clients dìm những thông điệp trường đoản cú hàng được thiết lập để lưu lại những thông điệp này. Hình sau chỉ mang đến bọn họ vài tình huống vào qui định media điệp PTP..

*
Nhỏng chúng ta thấy vào hình bên trên, một hàng hoàn toàn có thể có tương đối nhiều fan gửi thông điệp và có tương đối nhiều người dìm tuy vậy chỉ 1 bạn nhấn nhận một thông điệp trong hàng. Tuy nhiên, trong PTP model, client hoàn toàn có thể lựa chọn thông điệp mà lại nó được cho phép viếng thăm mà lại ko đem giá chỉ trị(peek).

Mô hình Publish-and-Subscribe Messaging

Mô hình Pub/Sub messaging dùng đến việc vạc tán các thông điệp (one-to-many broadcast). Nó được thi công bên trên định nghĩa về chủ thể các thông điệp(message topic). Mỗi thông điệp được đăng (publish) lên 1 chủ thể (topic) sẽ tiến hành phân phát tán cho toàn bộ các clients mà lại bao gồm đăng ký(subscibe) chủ thể này. Đối tượng Topic được gói gọn trong một thương hiệu được chỉ định và hướng dẫn vì chưng đơn vị hỗ trợ hình thức. Vấn đề này tương tự như như có mang newsgroups, user ĐK chủ đề mà lại mình ái mộ, từng user sẽ dấn được một bản copy của thông điệp đăng lên newsgroup nhưng mà mình đăng ký. Hình sau chỉ đến họ một trong những trường hợp của phép tắc truyền thông điệp Pub/Sub.

*

Trong quy mô Pub/Sub, một JMS client hoàn toàn có thể là 1 durable subscriber để có thể ngắt kết nối và sau đây nối lại để mang các thông điệp nhưng tôi đã đăng ký.

*
Các interfaces chính của JMS.

JMS Parent Interface

PTP.. Specific

Pub/Sub Specific

ConnectionFactoryQueueConnectionFactoryTopicConnectionFactory
ConnectionQueueConnectionTopicConnection
DestinationQueueTopic
SessionQueueSessionTopicSession
MessageProducerQueueSenderTopicPublisher
MessageConsumerQueueReceiver, QueueBrowserTopicSubscriber

Giải thích

InterfaceDescriptionConcurrent Use?
ConnectionFactoryAn administered object used by a client khổng lồ create a ConnectionYes
ConnectionAn active sầu connection khổng lồ a JMS providerYes
DestinationAn administered object that encapsulates the identity of a message destinationYes
SessionA single-threaded context for sending and receiving messagesNo
MessageProducerAn object created by a Session that is used for sending messages to lớn a destinationNo
MessageConsumerAn object created by a Session that is used for receiving messages sent to a destination

Các bước nhằm viết 1 ứng dụng JMS:

1. Import the javax.jms package

2. Look up the ConnectionFactory using the JNDI Context

3. Create a Connection from the ConnectionFactory

4. Create a Session from the Connection object

5. Look up the Destination using the same JNDI Context

6. Create a MessageProducer or a MessageConsumer using the Session object

7. Create a Message by choosing an appropriate JMS message type

8. Send/receive sầu the Message after starting the Connection

VÍ DỤ ỨNG DỤNG JMS Point – To – Point MODEL

A. Point – To – Point sender:

1. Các bước tiến hành

1. Performs a Java Naming và Directory InterfaceTM (JNDI) API lookup of the QueueConnectionFactory & queue

2. Creates a connection and a session

3. Creates a QueueSender

4. Creates a TextMessage

5. Sends one or more messages lớn the queue

6. Sends a control message to lớn indicate the end of the message stream

7. Closes the connection in a finally bloông xã, automatically closing the session & QueueSender

2. Source code

package queue2;

import javax.jms.Queue;

import javax.jms.QueueConnection;

import javax.jms.QueueConnectionFactory;

import javax.jms.QueueSender;

import javax.jms.QueueSession;

import javax.jms.Session;

import javax.jms.TextMessage;

import javax.naming.Context;

import javax.naming.InitialContext;

public class QueueSend

public static void main(String<> args)

try

System.setProperty(“java.naming.factory.initial”,”org.jnp.interfaces.NamingContextFactory”);

System.setProperty(“java.naming.provider.url”,”127.0.0.1:1099″);

System.out.println(“Looking up the JMS destination(Topic) via JNDI.”);

Context context = new InitialContext();

QueueConnectionFactory connectionFactory = (QueueConnectionFactory)context.lookup(“ConnectionFactory”);

System.out.println(“Create Queue Connection Factory completed!”);

QueueConnection queueConnection=connectionFactory.createQueueConnection();

System.

Xem thêm: Nhỏ Thì Trắng Phau Phau. Lớn Thì Đen Thậm Thụi. Già Thì Trụi Lùi Lụi. Là Gì?

out.println(“Create Queue Connection completed!”);

QueueSession queueSession

=queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);

System.out.println(“Create Queue Session completed!”);

Queue queue=(Queue)context.lookup(“queue/testQueue”);

System.out.println(“Create Queue completed!”);

QueueSender queueSender=queueSession.createSender(queue);

System.out.println(“Create Queue Sender completed!”);

TextMessage message=queueSession.createTextMessage();

message.setText(“Hello from Queue Messaging”);

queueSender.send(message);

queueConnection.close();

System.out.println(“Sover message completed…”);

catch (Exception e)

e.printStackTrace();

3. Biên dịch

Tạo file compile.bat với nội dung

javac -d . *.java

pause

Chạy file này để biên dịch, bảo đảm ko có một lỗi nào.

4. Thực thi

Tạo file run_SendQueue.bat cùng với nội dung

java queue/QueueSend

pause

5. Kết trái sau khoản thời gian thực thi

D:Bai giang AptechAptech – Semester 4JMSexmplesJMSp2p_ex1>java queue/QueueSend

Looking up the JMS destination(Topic) via JNDI.

Create Queue Connection Factory completed!

Create Queue Connection completed!

Create Queue Session completed!

Create Queue completed!

Create Queue Sender completed!

Skết thúc message completed…

D:Bai giang AptechAptech – Semester 4JMSexmplesJMSp2p_ex1>pause

Press any key to lớn continue . . .

B. Point – To – Point receiver

1. Các bước tiến hành

1. Performs a JNDI API lookup of the QueueConnectionFactory & queue

2. Creates a connection và a session

3. Creates a QueueReceiver

4. Starts the connection, causing message delivery lớn begin

5. Receives the messages sent to the queue until the end-of-message-stream control message is received

6. Closes the connection in a finally blochồng, automatically closing the session và QueueReceiver

2. Source code

package queue2;

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageListener;

import javax.jms.Queue;

import javax.jms.QueueConnection;

import javax.jms.QueueConnectionFactory;

import javax.jms.QueueReceiver;

import javax.jms.QueueSession;

import javax.jms.Session;

import javax.jms.TextMessage;

import javax.naming.Context;

import javax.naming.InitialContext;

public class QueueReceive sầu {

public static void main(String<> args) {

try {

System.setProperty(“java.naming.factory.initial”,”org.jnp.interfaces.NamingContextFactory”);

System.setProperty(“java.naming.provider.url”,”127.0.0.1:1099″);

System.out.println(“Looking up the JMS destination via JNDI.”);

Context context = new InitialContext();

QueueConnectionFactory connectionFactory = (QueueConnectionFactory)context.lookup(“ConnectionFactory”);

QueueConnection queueConnection=connectionFactory.createQueueConnection();

QueueSession queueSession=queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);