我希望我的Java MQ客户端能够访问(do puts)多个MQ服务器端点(通过端点我的意思是' host / port / Qmanager / Queue / Channel')。基本上,这个Java应用程序将收到一条请求,要求将消息和端点详细信息与请求一起放入。它应该能够找到端点的相应连接池并使用它来执行put。 从目前为止我的有限理解来看,MQEnvironment是一个全局配置(在一个JVM中只能有一个?),它可以一次配置到一个端点。因此,如果想法是多个线程并行访问多个MQserver端点 - 这似乎无法通过当前的理解实现。
答案 0 :(得分:2)
您还可以在创建与队列管理器的连接时使用Hashtable传递连接参数。例如:
Hashtable<String, Object> properties;
properties = new Hashtable<String, Object>();
properties.put("hostname", "remotehost");
properties.put("port", new Integer(1414));
properties.put("channel", "REMOTEQM.SVRCONN");
MQQueueManager queueManager = new MQQueueManager(queueManagerName, properties);
答案 1 :(得分:2)
要么您不能很好地理解MQ,要么您的MQ环境设置不正确。
您的MQ应用程序应该连接(并保持连接)到单个队列管理器。 MQ环境中的队列管理器应该互连,以便当您的MQ应用程序将消息发往另一个队列管理器时,本地队列管理器(您的应用程序连接到该队列管理器)将消息路由到正确的队列管理器。