2009-10-27 82 views
2

我需要用Java編寫一個簡單的MQSeries客戶端。爲MQSeries編寫Java客戶端的最低要求是什麼?

客戶端只需連接到隊列並拉下下一條消息。

我有一個數年前做過並且擁有所有的示例代碼等

我只記得需要有三個jar文件:

  • com.ibm.mq.iiop。罐子
  • com.ibm.mq.jar
  • connector.jar

我一直在做一些閱讀和很多人談論一個屬性文件,但我從我過去的經驗中沒有回憶這件事。

等,以我的問題:

什麼是絕對最低我需要我的系統開發,測試和部署最終一個簡單的MQSeries客戶?

我在哪裏可以找到(下載)這些東西?

注意:這個問題與this之一有關,但不相同。

回答

0

因爲我也這樣做了一段時間,IBM提供了直接使用mqseries和JMS API的java api,它也是一個包裝器。

轉到這裏,他們在Java http://www304.ibm.com/jct01005c/isv/tech/sampmq.html

出於測試的例子很多,你需要下載和安裝一個MQSeries服務器,或者也許他們會友好地爲你安排一個測試隊列上實服務器。

在任何情況下,當您從IBM網站(trial lic)下載MQseries服務器時,應該包含您需要的jar。

我會強烈研究MQSeries的JMS api,以便您可以遠離實際使用mqseries api。

+0

您的鏈接似乎被打破。 – 2009-10-27 08:03:24

+0

對不起,這是 http://www-304.ibm.com/jct01005c/isv/tech/sampmq.html – GDR 2009-10-27 19:53:17

+0

所有鏈接都死了 – Adrian 2012-01-04 18:37:25

1

好吧,看起來你需要我在問題中提到的三個罐子以及屬性文件。

  • com.ibm.mq.iiop.jar
  • com.ibm.mq.jar
  • connector.jar
  • mqji。性能

除非你有機會獲得這些東西已經是唯一的辦法,我可以找出讓他們爲下載和安裝來自IBM的MQSeries的完整試用版:

http://www.ibm.com/developerworks/downloads/ws/wmq/

如果鏈接隨着時間的推移而消亡,您也可以通過www.ibm.com然後從「支持&下載」 - >「下載」 - >「試用和演示」,然後從列表中選擇「WebSphere MQ」來找到它。

安裝完成後,您將在安裝發生的下面的java/lib文件夾中找到所需的所有jar。這個版本中的罐子與上面提到的罐子不同,我懷疑是因爲版本的不同。

屬性文件未安裝(可能新版本不需要此文件),但可以找到here

1

這裏是另一種方式......

使用三個jar文件:

com.ibm.mq.jar 
com.ibm.mqetclient.jar 
com.ibm.mqjms.jar 

下面是一個代碼示例,將讀取MQ消息 - 摘自

import com.ibm.mq.*;   // Include the WebSphere MQ classes for Java package 

public class MQSample 
{ 
    private String qManager = "your_Q_manager"; // define name of queue 
               // manager to connect to. 
    private MQQueueManager qMgr;     // define a queue manager 
               // object 
    public static void main(String args[]) { 
    new MQSample(); 
    } 

    public MQSample() { 
    try { 

     // Create a connection to the queue manager 
     qMgr = new MQQueueManager(qManager); 

     // Set up the options on the queue we wish to open... 
     // Note. All WebSphere MQ Options are prefixed with MQC in Java. 
     int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | 
         MQC.MQOO_OUTPUT ; 

     // Now specify the queue that we wish to open, 
     // and the open options... 
     MQQueue system_default_local_queue = 
       qMgr.accessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", 
           openOptions); 

     // Define a WebSphere MQ message buffer to receive the message into.. 
     MQMessage retrievedMessage = new MQMessage(); 

     // Set the get message options... 
     MQGetMessageOptions gmo = new MQGetMessageOptions(); // accept the defaults 
                  // same as MQGMO_DEFAULT 
     // get the message off the queue... 
     system_default_local_queue.get(retrievedMessage, gmo); 

     // And prove we have the message by displaying the UTF message text 
     String msgText = retrievedMessage.readUTF(); 
     System.out.println("The message is: " + msgText); 
     // Close the queue... 
     system_default_local_queue.close(); 
     // Disconnect from the queue manager 

     qMgr.disconnect(); 
    } 
     // If an error has occurred in the above, try to identify what went wrong 
     // Was it a WebSphere MQ error? 
    catch (MQException ex) 
    { 
     System.out.println("A WebSphere MQ error occurred : Completion code " + 
         ex.completionCode + " Reason code " + ex.reasonCode); 
    } 
     // Was it a Java buffer space error? 
    catch (java.io.IOException ex) 
    { 
     System.out.println("An error occurred whilst writing to the message buffer: " + ex); 
    } 
    } 
} // end of sample 

代碼this SO answer

3

問題的答案取決於您是否要將生成的代碼放入生產中。您可以抓取幾個jar文件並將它們包含在CLASSPATH中並使其運行。事實上,隨着v7中的重新包裝,罐子的數量已經減少。但是,如果沒有完整的客戶端安裝,IBM不支持它。

這是爲什麼?完整安裝包括診斷工具,支持代碼,NLS支持以及收集所有必須收集信息以打開故障單的功能。如果你所抓的只是幾個jar文件,那麼你就不會獲得額外的功能,因此如果出現問題,就沒有供應商支持。

提供的WMQ v7客戶端安裝爲SupportPac MQC7,可免費下載。

基本Java和JMS的jar文件和CLASSPATH設置在Using Java手冊中提供。

使用v7客戶端,即使是在v6服務器上。它向後兼容。在v7.0中,Java/JMS全部被重寫,您只需要手冊中列出的罐子。

另外,有人提到了etclient jar。這是擴展交易客戶端,請注意,它會產生QMgr的全部許可證費用。如果您正在執行兩階段提交(在同一工作單元中使用WMQ和另一個資源管理器的XA),而不使用WebSphere App Server或Message Broker,則只需要它。例如,您希望使用JBoss,MQ和數據庫來執行TPC,您需要etclient jar文件並支付完整的WMQ許可證。如果你沒有進行XA交易,你不需要它。

相關問題