Я попытался подключить MQ версии 9, используя следующий код.
/**
* Java class to connect to MQ. Post and Retrieve messages.
*
*/
public class MQClientTest {
String qMngrStr = "";
String user = "user";
String password = "password";
String queueName = "qname";
String hostName = "hostName ";
int port = 1234;
String channel = "channel";
String sslCiphersuite="TLS_RSA_WITH_AES_256_CBC_SHA256";
//message to put on MQ.
String msg = "WelCome to MQ.";
//Create a default local queue.
MQQueue queue;
MQQueueManager qManager;
/**
* Initialize the MQ
*
*/
public void init(){
//Set MQ connection credentials to MQ Envorinment.
MQEnvironment.hostname = hostName;
MQEnvironment.channel = channel;
MQEnvironment.port = port;
MQEnvironment.userID = user;
MQEnvironment.password = password;
MQEnvironment.sslCipherSuite= sslCiphersuite;
// MQEnvironment.sslFipsRequired=true;
//set transport properties.
MQEnvironment.properties.put(MQConstants.TRANSPORT_PROPERTY, MQConstants.TRANSPORT_MQSERIES_CLIENT);
try {
//initialize MQ manager.
qManager = new MQQueueManager(qMngrStr);
} catch (MQException e) {
e.printStackTrace();
System.out.println("queue manager issue");
}
}
/**
* Method to put message to MQ.
*
*/
public void putAndGetMessage(){
int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_OUTPUT;
try {
queue = qManager.accessQueue(queueName, openOptions);
MQMessage putMessage = new MQMessage();
putMessage.writeUTF(msg);
//specify the message options...
MQPutMessageOptions pmo = new MQPutMessageOptions();
// accept
// put the message on the queue
queue.put(putMessage, pmo);
System.out.println("Message is put on MQ.");
catch (MQException e) {
e.printStackTrace();
System.out.println("MQexception");
} catch (IOException e) {
e.printStackTrace();
System.out.println("IOexception");
}
catch (Exception e) {
System.out.println("exception");}
}
public static void main(String[] args) {
System.out.println("Processing Main...");
MQClientTest clientTest = new MQClientTest();
System.setProperty("com.ibm.mq.cfg.useIBMCipherMappings", "false");
// Enabling SSL debug to view the communication
//System.setProperty("javax.net.debug", "ssl:handshake");
System.setProperty("javax.net.ssl.trustStore","client.jks");
System.setProperty("javax.net.ssl.trustStorePassword","clientpass");
System.setProperty("javax.net.ssl.keyStore","client.jks");
System.setProperty("javax.net.ssl.keyStorePassword","clientpass");
//initialize MQ.
clientTest.init();
//put and retreive message from MQ.
clientTest.putAndGetMessage();
System.out.println("Done!");
}
}
, но я получаю следующую ошибку:
MQJE001: MQJE001: Код завершения '2', Причина '2393'.
Я попытался установить системную переменную com.ibm.mq.cfg.useIBMCipherMappings в false.а также добавили имя ssl в MQEnvironment.sslCipherSuite.
Я прочитал отображение для шифрования также на веб-сайте IBM.Не могу найти больше решений.Пожалуйста, помогите, если кто-нибудь знает об этом?
Спасибо