Java 使用jms连接到ibm mq。指定通道和队列管理器
如何在系统属性中指定要连接到的队列管理器。 代码如下:Java 使用jms连接到ibm mq。指定通道和队列管理器,java,jms,ibm-mq,Java,Jms,Ibm Mq,如何在系统属性中指定要连接到的队列管理器。 代码如下: 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
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 only无法连接到TESTOUT队列这里有一个来自IBM网站的示例,介绍如何设置Websphere Application Server(WAS)以使用MQ作为JMS机制。
此外,IBM还有一本很好的红皮书,其中概述了如果您是以下位置的消息生产者,如何执行此操作的示例:
在:
抱歉……我无法再访问为此编写的代码,或者我会给您一些示例。可以使用MQQueueManager的构造函数指定目标队列管理器的名称,使用带有属性的队列管理器获取连接信息。有关属性的详细信息,请参阅以下链接:
嗯……您发布的代码片段有很多问题,很难知道从哪里开始 使用WMQInitialContectFactory似乎不是从MQ开始的地方。它增加了一层在这个阶段你可能不想要的复杂性。我建议使用Sun的fscontext并将托管对象保存在本地文件中。您使用的初始上下文主要用于为许多用户或应用程序创建共享JNDI存储库,但不支持。我的问题是,程序首先必须连接到队列管理器才能获得连接工厂,该工厂……告诉程序如何连接到QMgr 所有名为SYSTEM.DEF.*或SYSTEM.AUTO.*的对象都不应用于实际连接。它们是新对象从中继承的模板。如果它们可用,则无法保护它们或从它们创建的任何对象 代码段不完整,或者您将连接工厂与队列对象混淆。文章说您想要测试输出队列,但代码只有一个队列连接工厂,没有目的地或队列对象 如果您已经在本地安装了WMQ服务器或客户机,那么您已经有了很多好的示例。这些示例的默认位置是C:\Program Files\IBM\WebSphere MQ\tools\jms\samples,它们包括发布/订阅和点对点示例。如果您想要一个演示如何创建.bindings文件的示例,请查看本文和示例代码:本文解释了我刚才提到的有关通道、客户端安全性等方面的一些问题