Наш код работает в weblogic, и мы MQ 6.0.Неважно, если я использую значение по умолчанию createQueueConnection()
или createQueueConnection("myuserid","mypassword")
, всегда используется userid mqm
.См. Код ниже.
Когда я подключаюсь из версии 6.0 к более старой версии mq 5, кажется, что выдается следующая ошибка javax.jms.JMSSecurityException: MQJMS2013: invalid security authentication supplied for MQQueueManager
с использованием значения по умолчанию createQueueConnection()
, если только я не отправляю пустой идентификатор пользователя / пароль, как в createQueueConnection("","")
Как я могу получить myuserid для отправки вместо?
Hashtable properties = new Hashtable(2);
properties.put(Context.PROVIDER_URL,context);
properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
InitialContext ctx = new InitialContext(properties);
QueueConnectionFactory qcf = (QueueConnectionFactory) ctx.lookup("QCF");
QueueConnection qc = qcf.createQueueConnection();
javax.jms.Queue q = (javax.jms.Queue) ctx.lookup("MYQUEUE");
QueueSession qs = qc.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
TextMessage tm = qs.createTextMessage();
tm.setText(outString);
QueueSender sender = qs.createSender(q);
sender.send(tm);
sender.close();
qs.close();
qc.close();