여기 내 문제가 있습니다.IBM MQ 큐에 액세스하는 동안 DetailedJMSSecurityException
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
에 액세스 할 수 있습니다.
[[email protected] ~]$ setmqaut -m MYQM -t qmgr -p abc +connect
The setmqaut command completed successfully.
는 여기에 내가 WebSphere 7, configuring JMS Q connection factory without user id: MQRC_NOT_AUTHORIZED으로 시도 내 자바 프로그램
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();
}
}
}
이지만, 여전히 내 문제는 유지됩니다. 나는 내가 잘못하고있는 것을 얻지 못하고있다. 어떤 도움을 주셔서 감사합니다.
편집
사용자 ABC는
응답 해 주셔서 감사합니다. 아래의 변경을 수행 한 후에 대기열에 메시지를 넣을 수 있습니다. 'MCA User Id'를 비워두고 내 프로그램의'queueConn = connectionFactory.createQueueConnection ("", "password");'에 설정하십시오. 나는 당신의 제안을 시도 할 것이다. – atom