2

如何在我的系统属性中指定要连接的队列管理器。这是代码:

Properties properties = new Properties(); 
properties.setProperty("java.naming.factory.initial", "com.ibm.mq.jms.context.WMQInitialContextFactory");
properties.setProperty("java.naming.provider.url", "localhost:1414/SYSTEM.DEF.SVRCONN"); 

Context context = new InitialContext(properties); 
factory= (QueueConnectionFactory)context.lookup("TESTOUT"); 

上下文总是得到 TEST que 只是不能连接到 TESTOUT 队列

4

3 回答 3

2

嗯......你发布的代码片段有很多问题,很难知道从哪里开始。

使用 WMQInitialContectFactory 似乎不是开始使用 MQ 的地方。它增加了您在此阶段可能不想要的复杂性。我建议使用 Sun 的 fscontext 并将托管对象保存在本地文件中。您使用的初始上下文主要用于为许多用户或应用程序创建共享 JNDI 存储库,但它不受支持。我的问题是程序首先必须连接到队列管理器才能获得连接工厂......告诉程序如何连接到 QMgr!

所有那些名为 SYSTEM.DEF.* 或 SYSTEM.AUTO.* 的对象绝不应该用于实际连接。它们是新对象继承的模板。如果它们可用,您将无法保护它们或从它们创建的任何对象。

代码片段不完整,或者您将连接工厂与队列对象混淆了。帖子说您想要 TESTOUT 队列,但代码只有一个队列连接工厂,没有目标或队列对象。

如果您已经在本地安装了 WMQ 服务器或客户端,那么您已经拥有了一堆很好的示例。它们的默认位置是 C:\Program Files\IBM\WebSphere MQ\tools\jms\samples,它们包括 pub/sub 和点对点示例。如果您想要一个演示如何创建 .bindings 文件的示例,请在此处查看文章和示例代码:http: //www.ibm.com/developerworks/websphere/techjournal/0610_w ​​oolf/0610_w​​oolf.html文章解释了一些问题我刚刚提到了渠道、客户端安全等。

于 2010-04-28T03:35:45.703 回答
2

这是 IBM 网站上的一个示例,介绍了如何设置 Websphere Application Server (WAS) 以使用 MQ 作为 JMS 的机制。
http://www.ibm.com/developerworks/websphere/techjournal/0505_woolf/0505_woolf.html

IBM 也有一本很好的红皮书,其中概述了如果您是消息生产者如何执行此操作的示例:
http ://www.redbooks.ibm.com/redbooks/pdfs/sg247128.pdf

还有一些很好的 Java 代码示例位于: http:
//www.capitalware.biz/mq_code_java.html

抱歉....我无法再访问我为此所做的代码,否则我会给你一些我的例子。

于 2010-02-24T12:46:46.273 回答
0

可以使用 MQQueueManager 的构造函数来指定目标队列管理器的名称,使用带有属性的连接信息。有关属性的更多详细信息,请参阅以下链接:

http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=/com.ibm.mq.csqzaw.doc/jm10910_.htm

于 2010-03-09T20:06:45.610 回答