private static void testQueueManagerNew() throws JMSException {
JmsFactoryFactory ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
JmsConnectionFactory cf = ff.createConnectionFactory();
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, "");
cf.setIntProperty(WMQConstants.WMQ_PORT, 1414);
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, "MY_CNL");
// cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_BINDINGS);
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, ""); //it should use default QM
JMSContext context = cf.createContext();
Destination destination = context.createQueue("queue:///" + "MY_QUEUE");
long uniqueNumber = System.currentTimeMillis() % 1000;
TextMessage message = context.createTextMessage("Your lucky number today is " + uniqueNumber);
JMSProducer producer = context.createProducer();
producer.send(destination, message);
LOGGER.info("Sent message:{}{}", message, System.lineSeparator());
JMSConsumer consumer = context.createConsumer(destination); // autoclosable
String receivedMessage = consumer.receiveBody(String.class, 15000); // in ms or 15 seconds
LOGGER.info("Rreceived message:{}{}", receivedMessage, System.lineSeparator());
}
我所做的更改是使用defaut队列管理器(wmqconstants.wmq_queue_manager为空字符串)、使用“绑定”连接模式(wmqconstants.wmq_cm_bindings)和删除主机(wmqconstants.wmq_host_name为空字符串)。我收到以下例外:
com.ibm.msg.client.jms.DetailedIllegalStateRuntimeException: JMSWMQ0018: Failed to connect to queue manager '' with connection mode 'Bindings' and host name '(1414)'.
at com.ibm.msg.client.jms.DetailedIllegalStateException.getUnchecked(DetailedIllegalStateException.java:274)
at com.ibm.msg.client.jms.internal.JmsErrorUtils.convertJMSException(JmsErrorUtils.java:173)
at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createContext(JmsConnectionFactoryImpl.java:478)
at poc.ibmmq.defaultqm.DefaultQM.testQueueManagerNew(DefaultQM.java:86)
at poc.ibmmq.defaultqm.DefaultQM.main(DefaultQM.java:59)
Caused by: com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2059' ('MQRC_Q_MGR_NOT_AVAILABLE').
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:203)
at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:418)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:8475)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:7815)
at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl._createConnection(JmsConnectionFactoryImpl.java:303)
at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createContext(JmsConnectionFactoryImpl.java:444)
当我指定主机时,它可以使用“客户端”连接模式,但不能使用绑定。此外,当指定队列管理器时,“绑定”连接模式也可以工作(不使用默认值)。是否需要任何额外的队列管理器设置?
为了使用“绑定”连接模式连接到队列管理器,队列管理器必须与应用程序位于同一台机器上(相同的O/S映像)。“绑定”连接模式使用进程间--也就是共享内存--来建立连接。
当使用“客户端”连接模式建立连接时,应用程序使用TCP/IP套接字连接到队列管理器,并提供与主机和端口号的连接。
使用“客户端”连接模式进行连接时,如果您愿意连接到出现在TCP/IP套接字另一端的队列管理器,则不必在连接调用中提供队列管理器名称。
当使用“绑定”连接模式建立连接时,队列管理器名称用于确定向哪个本地进程发出进程间请求。如果已指定本地托管的队列管理器之一作为此计算机上的默认队列管理器,则只能省略此名称。只有一个队列管理器是不够的,您仍然必须将其指定为默认值。
dspmq -o default
误差 你好,Gnana
我创建了一个队列管理器,队列,通道(服务器-连接)。当我尝试发送消息时,看到以下错误:com.ibm.msg.client.jms.DetailedIllegalStateException:JMSWMQ0018:无法连接到连接模式为“Client”、主机名为“epspa(1401)”的队列管理器“my_local_qm”。检查队列管理器是否已启动,如果在客户端模式下运行,则检查是否有侦听器正在运
JMS应用程序需要七个参数才能与这里给出的MQ系列进行成功的SSL连接,https://github.com/ibm-messaging/mq-tls-ssl-wizard/blob/master/com.ibm.MQ.ssl-wizard/sample/sslsamplejms.java 我试图解释这些参数, > conname-服务器队列管理器的连接名,格式与MQSC DEFINE CHANN
我是WebSphere MQ的初学者,我在MQ6上工作,它工作得很好,但现在我安装了MQ7.1,当我试图创建一个新的队列管理器时,我可以创建它,但它不能连接,这给我带来了以下错误: 你对此有什么想法吗?谢谢:)
SMTP错误:无法连接到SMTP主机。无法发送消息。 邮件程序错误:SMTP错误:无法连接到SMTP主机。 我似乎找不到让PHPMailer在CentOS下工作的方法。邮件在XAMPP的Windows下工作正常,但我总是在Linux下遇到这个错误。 SMTP服务器是一个在端口25上侦听的Lotus Domino,CentOS机器根本没有防火墙,奇怪的是,即使是mail()也不能工作。它不返回任何内
我在 Linux 平台上安装了 WebSphere MQ 7.1,之后我安装了 WebSphere 消息代理 8.0.0.1。现在,当我尝试创建执行组时,我得到一个异常:原因码 2035。此异常表示用户未经授权连接到队列管理器。我已将此用户添加到 组中。当我使用MQ 7.0.x时,我没有遇到任何这样的问题。我搜索了很多,知道 MQ 7.1 中存在用户 ID 阻塞。但是,我希望此用户能够创建执行组,