創建相應的用戶隊列的兩個目標:
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…