我正在尝试使用来自 MQ 的消息,但代码挂起且不显示输出。
JmsFactoryFactory FF = jmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
JmsConnectionFactory cf = FF.createConnectionFactory();
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, HOST);
cf.setStringProperty(WMQConstants.WMQ_PORT, PORT);
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, CHANNEL);
cf.setStringProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, QMGR);
cf.setStringProperty(WMQConstants.WMQ_APPLICATIONNAME, "JMS");
Connection connection = cf.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue(queuename);
MessageConsumer consumer1 = session.createConsumer(destination);
Message reply = consumer1.receive();
System.out.println(reply);
Run Code Online (Sandbox Code Playgroud)
它不显示消息并挂起,甚至不终止。
无法将消息放入远程队列管理器上的集群队列。我正在使用 MQGetMessageOptions 和 MQPutMessageOptions。我正在使用 7.5 MQ 服务器和客户端 (7.5.0.1)
它抛出原因代码 - 2085- message -CompCode: 2, Reason: 2085
队列和队列管理器使用 MQ 集群连接。
mqQueue = mqQueueMgr.AccessQueue("queue name", MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE);
Run Code Online (Sandbox Code Playgroud)
我尝试使用 amqsput.exe 放置一条测试消息,它在那里工作正常。
有什么想法吗?
我已经安装了IBM Worklight 6.0 Studio - 企业版.我的工作站(Windows 7)有多个网络接口,因此有多个IP地址.默认的wlclient.properties文件的wlServerHost值是其中一个ip地址,但不是localhost的正确值.worklight工作室从哪里获取IP地址?(即,使用什么命令或什么代码来获取嵌入式WAS 8.5 Liberty Profile服务器的主机地址?)
我有这样的需求,比如用用户ID而不是通道连接MQ。
我尝试在没有chanel的情况下将用户ID和密码设置为MQEnvironment类,但出现以下异常。
com.ibm.mq.jmqi.JmqiException: CC=2;RC=2540;AMQ9520: Channel not defined remotely. [3=].
Run Code Online (Sandbox Code Playgroud)
请指导我,是否可以编写java客户端来使用用户id而不是通道连接MQ。
我在 IBM WebSphere MQ Explorer 中创建了一个类似 QMTEST 的队列管理器。我想连接到远程队列管理器(远程 IP 地址)。我按照以下步骤操作:
但我无法连接。我收到此错误消息“无法建立与队列管理器的连接-原因 2538.(AMQ4059)”。我能做什么?
我目前正在使用Spring的JMS消息传递(JMSTemplate)的应用程序上工作。应用程序需要将消息发送到大型机队列,该大型机队列无法破译JMSTemplate附加到消息的“ RFH”头。有没有一种方法可以通过编程方式完全删除所有标头信息,以便大型机只获取没有标头的消息的原始内容?
这是我的代码...
MQQueueConnectionFactory connectionFactory = new MQQueueConnectionFactory();
connectionFactory.setHostName( "127.0.0.1" );
connectionFactory.setPort( 1414 );
connectionFactory.setChannel( "S_LOCALHOST" );
connectionFactory.setQueueManager( "QM_LOCALHOST" );
connectionFactory.setTransportType( 1 );
UserCredentialsConnectionFactoryAdapter credentials = new UserCredentialsConnectionFactoryAdapter();
credentials.setUsername( "" );
credentials.setPassword( "" );
credentials.setTargetConnectionFactory( connectionFactory );
JmsTemplate jmsTemplate = new JmsTemplate( credentials );
jmsTemplate.setPubSubDomain( false );
jmsTemplate.setDeliveryMode( javax.jms.DeliveryMode.NON_PERSISTENT );
jmsTemplate.setExplicitQosEnabled( true );
jmsTemplate.setReceiveTimeout( 60000 );
jmsTemplate.convertAndSend( "MY.QUEUE", "cobol data" );
Run Code Online (Sandbox Code Playgroud)
这是该消息在Websphere MQ Explorer中的外观。如何删除这些值?Spring JMS甚至可能吗?Lemme知道您是否需要更多信息...
我在 Windows 7 中安装了 IBM MQ 7.5 版。我使用以下命令创建了一个队列管理器、通道和侦听器。
//CREATE THE QUEUE MANAGER
crtmqm.exe PG3RT1
//START THE QUEUE MANAGER AS INTERACTIVE
strmqm.exe -si PG3RT1
//CONNECT AS SCRIPT CONSOLE
runmqsc.exe PG3RT1
//CREATE THE CHANNEL TO APPLICATION CONNECTIVITY
DEFINE CHANNEL(PG3RT1.CHANNEL) CHLTYPE(SVRCONN) TRPTYPE(TCP)
//CREATE THE LISTENER
DEFINE LISTENER(LISTENER.PG3RT1) TRPTYPE(TCP) PORT(1414)
//START THE LISTENER
START LISTENER(LISTENER.PG3RT1)
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试使用以下 java 客户端连接到队列管理器。连接因以下错误而被拒绝。
15:06:52.175 [localhost-startStop-1] ERROR c.b.c.s.s.m.MQUtil - MQJE001: Completion Code '2', Reason '2035'.
com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2035'.
at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:230)
at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:553)
at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:593)
at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:96) …
Run Code Online (Sandbox Code Playgroud) 在64位计算机上安装mq v8客户端后,很少有文件夹(错误,退出,退出64,跟踪..),mqclient.ini丢失.甚至没有创建日志/跟踪.有没有人遇到过这个问题.我试图清理安装几次,同样的msi在其他机器上工作正常以下是唯一安装的文件夹
尝试通过amqp10使用 AMQP 1.0 协议连接到我的 Apache ActiveMQ 代理。我正在使用以下代码(改编自自述文件中的原始示例):
const AMQPClient = require("amqp10").Client;
const Promise = require("bluebird");
//Fix from: https://github.com/noodlefrenzy/node-amqp10/issues/241
const activeMQPolicy = require("amqp10").Policy;
const client = new AMQPClient(activeMQPolicy.ActiveMQ);
const setUp = () => {
return Promise.all([
client.createReceiver("amq.topic"),
client.createSender("amq.topic")
]);
};
client.connect("amqp://localhost")
.then(setUp)
.spread(function (receiver, sender) {
receiver.on("errorReceived", function (err) {
if (err) {
console.log(`failed with error: ${err}`);
return;
}
receiver.on("message", message => console.log(`Rx message: ${message.body}`));
return sender.send({ key: "Value" });
});
})
.error( err => console.log("error: ", err)); …
Run Code Online (Sandbox Code Playgroud) 使用IBM MQ 8.0.0.9
我无法MQExplorer
从命令行复制GUI操作的行为.
使用MQExplorer
我创建:
testQueueManager
使用默认值testQueue
使用默认值的队列testChannel
使用默认值的服务器连接通道*
- >用户ID 的地址映射的通道验证记录client
Java客户端连接到该实例没有问题.
以下shell脚本应该从我所知道的内容中复制以上内容.我知道我授予的权限超过了必要的数量,这纯粹是为了进行连接测试.
#!/bin/sh
set -eu
user=client
pass=password
qmgr="testQueueManager"
channel="testChannel"
queue="testQueue"
useradd "$user" && echo "$user":password | chpasswd
/opt/mqm/bin/crtmqm "$qmgr"
/opt/mqm/bin/strmqm "$qmgr"
/opt/mqm/bin/runmqsc "$qmgr" << EOF
DEFINE QLOCAL('$queue')
DEFINE CHANNEL('$channel') CHLTYPE(SVRCONN) TRPTYPE(TCP)
SET CHLAUTH('$channel') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(MAP) MCAUSER('$user') ACTION(ADD)
EOF
/opt/mqm/bin/setmqaut -m "$qmgr" -t qmgr -p client +all
/opt/mqm/bin/setmqaut -m "$qmgr" -n "$channel" -t channel -p client …
Run Code Online (Sandbox Code Playgroud) 能以某种方式向我解释一下这些产品的区别吗?
我正在使用IBM Websphere MQ.我有队列管理器和队列名称.现在,我想检查队列中是否有任何消息?
我之前没有这方面的工作.请求帮助
如果您需要更多信息,请告诉我们!
谢谢
我正在尝试使用 Java 程序连接到 IBM websphere Client,以下是代码:=
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
/**
* Simple example program
*/
public class MQSample {
// code identifier
static final String sccsid = "@(#) MQMBID sn=p750-002-131001_DE su=_FswqMCqGEeOZ3ui-rZDONA pn=MQJavaSamples/wmqjava/MQSample.java";
// define the name of the QueueManager
private static final String qManager = "QM_ORANGE";
// and define the name of the Queue
private static final String qName = "SYSTEM.DEFAULT.LOCAL.QUEUE";
// private static final String qName = "QM_APPLE";
public static …
Run Code Online (Sandbox Code Playgroud)