2009-10-27 119 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交易,你不需要它。

相关问题