簡體   English   中英

為MQSeries編寫Java客戶機的最低要求是什么?

[英]What are the minimum requirements for writing a Java client for MQSeries?

我需要用Java編寫一個簡單的MQSeries客戶機。

客戶端只需連接到隊列並提取下一條消息即可。

我在幾年前就已經做到了,並擁有所有示例代碼等。

我只需要記住以下三個jar文件:

  • com.ibm.mq.iiop.jar
  • com.ibm.mq.jar
  • connector.jar

我一直在閱讀,很多人都在談論屬性文件,但是根據我過去的經驗,我對此沒有任何回想。

依此類推,我的問題是:

開發,測試並最終部署一個簡單的MQSeries客戶機,我在系統上所需的絕對最低限度是多少?

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

注意:這個問題是有關,但不一樣的一個。

問題的答案取決於您是否要將結果代碼放入生產環境。 您可以獲取一些jar文件,並將它們包含在CLASSPATH中,然后使其工作。 實際上,通過v7中的重新包裝,罐子的數量已經減少了。 但是,如果沒有完整的客戶端安裝,則IBM不支持它。

這是為什么? 完整安裝包括診斷工具,支持代碼,NLS支持以及收集所有“必須收集”信息以打開故障單的功能。 如果僅獲取幾個jar文件,則您將無法獲得其他功能,因此如果出現問題,則沒有供應商支持。

WMQ v7客戶端安裝作為SupportPac MQC7提供,可以免費下載。

使用Java手冊中提供了基本Java和JMS的jar文件和CLASSPATH設置。

即使在v6服務器上,也要使用v7客戶端。 向后兼容。 在v7.0中,Java / JMS已全部重寫,您只需要手冊中列出的jar。

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

好的,看起來您需要我在問題中提到的三個jar以及一個屬性文件。

  • com.ibm.mq.iiop.jar
  • com.ibm.mq.jar
  • connector.jar
  • mqji.properties

除非您已經可以訪問這些東西,否則我想弄明白的唯一方法是從IBM下載並安裝MQSeries的FULL試用版:

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

如果該鏈接隨着時間的流逝而消失,您也可以通過僅訪問www.ibm.com並從“支持與下載”->“下載”->“試用和演示”中選擇菜單,然后選擇“ WebSphere MQ”來找到它。從列表中。

安裝完成后,將您需要的所有jar保存在安裝發生的java / lib文件夾中。 這個版本的Jar與我上面提到的jar不同,我懷疑是因為版本不同。

該屬性文件未隨安裝一起安裝(也許新版本不需要此文件),但可以在此處找到。

這是另一種方式

使用三個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

從此SO答案中獲取的代碼。

自從我也這樣做以來已經有一段時間了,IBM也提供了直接使用mqseries和JMS api的java api,這是它的包裝。

轉到此處,它們在Java中有很多示例http://www304.ibm.com/jct01005c/isv/tech/sampmq.html

為了進行測試,您將需要下載並設置一個MQseries服務器,或者它們可能足夠友好,可以在真實服務器上設置一個測試隊列。

無論如何,當您從IBM的網站(試用版)下載MQseries服務器時,該服務器應包含您需要的jar。

我將深入研究MQSeries的JMS api,以便您可以遠離實際使用mqseries api。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM