Unser Code läuft in Weblogic und wir MQ 6.0. Egal ob ich die Standard createQueueConnection()
o createQueueConnection("myuserid","mypassword")
es scheint immer userid zu verwenden mqm
. Siehe Code unten.
Wenn ich eine Verbindung von Version 6.0 zu einer älteren mq-Installation 5 herstelle, scheint der folgende Fehler aufzutreten javax.jms.JMSSecurityException: MQJMS2013: invalid security authentication supplied for MQQueueManager
unter Verwendung der Standard createQueueConnection()
es sei denn, ich sende eine leere Benutzerkennung/Kennwort wie in createQueueConnection("","")
Wie kann ich myuserid stattdessen senden lassen?
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();