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 ExamplesBlog Stats
2,914,082 hitsEmail 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..

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ý.

JMS Parent Interface | PTP.. Specific | Pub/Sub Specific |
ConnectionFactory | QueueConnectionFactory | TopicConnectionFactory |
Connection | QueueConnection | TopicConnection |
Destination | Queue | Topic |
Session | QueueSession | TopicSession |
MessageProducer | QueueSender | TopicPublisher |
MessageConsumer | QueueReceiver, QueueBrowser | TopicSubscriber |
Giải thích
Interface | Description | Concurrent Use? |
ConnectionFactory | An administered object used by a client khổng lồ create a Connection | Yes |
Connection | An active sầu connection khổng lồ a JMS provider | Yes |
Destination | An administered object that encapsulates the identity of a message destination | Yes |
Session | A single-threaded context for sending and receiving messages | No |
MessageProducer | An object created by a Session that is used for sending messages to lớn a destination | No |
MessageConsumer | An 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 |
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(); |
Tạo file compile.bat với nội dung
javac -d . *.java pause |
4. Thực thi
Tạo file run_SendQueue.bat cùng với nội dung
java queue/QueueSend pause |
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 . . . |
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 |
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); |