MQ JMS 發布訂閱配置、代碼-中文3

創建相應的用戶隊列的兩個目標:

1。用滑鼠右鍵點擊目的地,然後選擇”新建” – >”目標,以啟動新的”目標嚮導”。

2。在第一步中,在”名稱”欄位中輸入EmailQueue”,然後單擊”下一步”。

3。單擊”下一步”,在第二個屏幕。

4。在最後一個頁面中,單擊”選擇”按鈕旁邊的”隊列管理器”,並從列表選擇TestQM01。

5。單擊”選擇”按鈕旁邊的”隊列”欄位中選擇”電子郵件”(參見圖15)。從列表中排隊。單擊”完成”。

6。重複上面的步驟,以創建另一個稱為SMSQueue SMS.Queue的目標。您的目的地應該看起來像那些在圖16中。

 

編碼JMS發布伺服器和訂閱

通過MQ資源管理器中,你定義了你的主題和訂閱,編寫發布伺服器和訂閱伺服器的應用程序是很容易的。要發布的消息,您必須寫入一個消息,一個主題(就像你的隊列)。用戶只須從隊列中讀取消息。

本文下載的源代碼使用通用的JMS介面,處理隊列和主題統一為目標。它提供了編譯後的類,包括新聞發布和兩個用戶(對應的電子郵件和簡訊應用)。

以下是類的簡要說明。

JNDIUtil ClassThis類的方法來檢索對象的名字,通過JNDI查找(參見清單1)。

Java的代碼

package com.test.pubsub;

/**

* Listing 1. JNDIUtil Class

* This class includes methods to retrieve objects by name through JNDI lookup.

* package devx.articles.pubsub;

*/

//JMS classes

import javax.jms.JMSException;

import javax.jms.ConnectionFactory;

import javax.jms.Destination;

 

//JNDI classes

import javax.naming.InitialContext;

import javax.naming.Context;

import javax.naming.NamingException;

 

//Standard Java classes

import java.util.Hashtable;

 

/**

*

* A wrapper class for JNDI calls

* 您將使用這個類的方法來檢索您已經定義的JMS對象的引用。

*/

public class JNDIUtil

{

    private Context context;

    

    public JNDIUtil(String icf, String url) throws JMSException, NamingException

    {

        Hashtable environment = new Hashtable();

 

        environment.put(Context.INITIAL_CONTEXT_FACTORY, icf );    

        environment.put(Context.PROVIDER_URL, url);

 

        context= new InitialContext( environment );

        

    }

    

    /**

     * @param ObjName Object Name to be retrieved

     * @return Retrieved Object

     * @throws NamingException

     */

    private Object getObjectByName(String ObjName) throws NamingException

    {

        return context.lookup( ObjName );

    }

    

    /**

     * @param factoryName Factory Name

     * @return ConnectionFactory object

     * @throws NamingException

     */

    public ConnectionFactory getConnectionFactory(String factoryName) throws NamingException

    {

        return (ConnectionFactory) getObjectByName(factoryName);

    }

 

    /**

     * @param destinationName Destination Name

     * @return ConnectionFactory object

     * @throws NamingException

     */

    public Destination getDestination(String destinationName) throws NamingException

    {

        return (Destination) getObjectByName(destinationName);

    }

    

}

您將使用這個類的方法來檢索您已經定義的JMS對象的引用。

NewsPublisher ClassThis類消息發布到新聞主題(參見清單2)。

Java的代碼

package com.test.pubsub;

 

//JMS classes

import javax.jms.JMSException;

import javax.jms.ConnectionFactory;

import javax.jms.Connection;

import javax.jms.Session;

import javax.jms.Destination;

import javax.jms.MessageProducer;

import javax.jms.TextMessage;

 

//JNDI classes

import javax.naming.NamingException;

 

/**

* A class to demonstrate how to a publish to a topic.

* 這個類消息發布到新聞主題(參見清單2)。

* 其出發點是查找一個連接工廠。您可以使用工廠來創建一個連接:

*/

public class NewsPublisher

{

 

public static String icf = “com.sun.jndi.fscontext.RefFSContextFactory”;

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營