Websphere mq 的基本操作_20頁4

若啟動失敗,則好好檢查一下您的環境變量是否設置正確。根據我個人的經驗,除了把com.ibm.mq.jarcom.ibm.mqjms.jar加入到環境變量外,還要把fscontext.jarproviderutil.jar加入到環境變量。
進入JMSAdmin控制台後,您可以自由定義sub context。對於子上下文的操作,主要有一下命令:
display ctx
define ctx(ctxname)
change ctx(ctxname)
change ctx(=up)
change ctx(=init)
delete ctx(ctxname)

當然,在這裡的主要任務並非是用來定義sub context,而是用來定義以下幾個對象:
MQQueueConnectionFactory
MQTopicConnectionFactory
MQQueue
MQTopic
(還有其它的一些對象,如MQXAQueueConnectionFactory等,不常用到,在此不作說明。)
可以使用很多動詞來操縱目錄名稱空間中的受管理對象。ALTERDEFINEDISPLAYDELETECOPYMOVE,它們的用法都算比較簡單,這裡只列舉一二以作說明。
例一:定義一QueueConnectionFactory,連接主機10.10.10.18,端口1414
DEFINE QCF(EXAMPLEQCF)+
DESC(Example Queue Connection Factory)+
TRAN(CLIENT)+
HOST(10.10.10.18)+
QMGR(QM_EXAMPLE)+
CHAN(S_EXAMPLE)+
PORT(1414)+
CCSID(1381)

例二:定義一Queue,其對應於MQ中的Q_EXAMPLE
DEFINE Q(EXAMPLEQL)+
DESC(Local queue)+
QMGR(QM_EXAMPLE)+
QUEUE(Q_EXAMPLE)+
CCSID(1381)

四.用JMS實現MQ編程
上面我們說明了怎樣用JMSAdmin Tool定義MQ對象的上下文。我們的最終目的是要用JMS來實現MQ編程,以實現在程序中對MQ隊列進行收、發消息。所以,下面我們將重點討論一下MQJMS實現。
如果您對JMS編程很熟悉,那麼您也就會用JMS來實現MQ編程,因為用JMS來編寫MQ程序與編寫一般的JMS程序沒有太大的差別。舉個例子,當我們想發送一條消息到MQ的隊列中,再從該隊列中取回消息時,我們編程時主要有四個步驟。首先我們要初始化在程序中要用到的對象,然後才可以發送消息到隊列中去,再就是收取消息,最後要清除那些永久對象。這些都和普通的JMS程序相當。程序的源代碼如下:

import java.util.Hashtable;
import javax.jms.*;
import javax.naming.*;
import javax.naming.directory.*;

public class sample {
protected QueueConnectionFactory factory=null;
protected QueueConnection connection;
protected QueueSession queueSession;
protected TextMessage outMessage;
protected QueueSender queueSender;
protected QueueReceiver queueReceiver;

public static final String qcfLookup=”EXAMPLEQCF”;
public static final String qLookup=”EXAMPLEQL”;
public static final String icf = “com.sun.jndi.fscontext.RefFSContextFactory”;
public String url =”file:/d:/temp”;

public void sampleInit() throws Exception {
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, icf);
environment.put(Context.PROVIDER_URL, url);
environment.put(Context.REFERRAL, “throw”);
Context ctx=new InitialDirContext(environment);
factory = (QueueConnectionFactory)ctx.lookup(qcfLookup);
Queue q1=null;
q1=(Queue)ctx.lookup(qLookup);
connection = factory.createQueueConnection();
queueSession = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);

以下文章點擊率最高

Loading…

     

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