【发布时间】:2015-01-05 19:03:12
【问题描述】:
这是我的问题。
我正在使用IBM MQ V7.1 的试用版。我创建了一个队列管理器MYQM,一个通道MY_SVRCONN 和MCA User Id abc。我已提供用户abc 访问MYQM。我正在尝试将消息放入队列Q1。但是在获得队列连接时,我遇到了异常。
com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 为具有连接模式“客户端”和主机名“(1500)”的 QueueManager“MYQM”提供的安全认证无效。 请检查您所连接的 QueueManager 上提供的用户名和密码是否正确。
我使用下面的命令来允许用户 abc 访问MYQM。
[mqm@localhost ~]$ setmqaut -m MYQM -t qmgr -p abc +connect
The setmqaut command completed successfully.
这是我的 Java 程序
public class MqPut
{
public static void main(String[] args)
{
sendMsg("Sample Message");
}
public static void sendMsg(String msg)
{
MQQueueConnectionFactory connectionFactory = null;
QueueConnection queueConn = null;
QueueSession queueSession = null;
QueueSender queueSender = null;
TextMessage message = null;
try
{
connectionFactory = new MQQueueConnectionFactory();
connectionFactory.setHostName(<MQ SERVER IP>);
connectionFactory.setPort(1500);
connectionFactory.setTransportType(WMQConstants.WMQ_CLIENT_NONJMS_MQ);
connectionFactory.setQueueManager("MYQM");
connectionFactory.setChannel("MY_SVRCONN");
queueConn = connectionFactory.createQueueConnection("abc","password");
queueSession = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
queueSender = queueSession.createSender(queueSession.createQueue("Q"));
queueSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
message = queueSession.createTextMessage(msg);
queueSender.send(message);
queueConn.close();
}
catch (Exception je)
{
je.printStackTrace();
}
}
}
我已尝试使用WebSphere 7, configuring JMS Q connection factory without user id: MQRC_NOT_AUTHORIZED,但我的问题仍然存在。我没有得到我做错了什么。任何帮助表示赞赏。
编辑
用户 abc 不属于 mqm 组
【问题讨论】: