繁体   English   中英

使用jms连接到ibm mq。 指定通道和队列管理器

[英]Connect to ibm mq with jms . Specify the channel and queue manager

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

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队列

这是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

抱歉。...我现在无法再访问为此编写的代码,否则,请给我一些示例。

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

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

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

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

如果您是在本地安装WMQ服务器或客户端的,则已经有很多不错的示例。 这些的缺省位置是C:\\ Program Files \\ IBM \\ WebSphere MQ \\ tools \\ jms \\ samples,并且它们包括发布/订阅示例和点对点示例。 如果您想要一个演示如何创建.bindings文件的示例,请在此处查看本文和示例代码: http : //www.ibm.com/developerworks/websphere/techjournal/0610_w​​oolf/0610_w​​oolf.html本文介绍了一些问题我刚才提到渠道,客户端安全性等。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM