Я новичок в технологиях Websphere MQ (IBM z / OS). У нас было требование реализовать автономное приложение, которое использует технологию JMS для подключения к серверу MQ (в IBM z / OS. Это поддерживается другой организацией, для которой у нас есть только ограниченный доступ) и помещает сообщение в очередь.
Вот фрагменты моего кода ниже.
private void sendMessage(String queue, String msg) {
JmsFactoryFactory ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
JmsConnectionFactory cf = ff.createConnectionFactory();
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, host);
cf.setIntProperty(WMQConstants.WMQ_PORT, port);
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, channel);
cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, queueManagerName);
cf.setStringProperty(WMQConstants.USERID, user);
cf.setStringProperty(WMQConstants.PASSWORD, password);
Connection connection = null;
Session session = null;
Destination destination = null;
MessageProducer producer = null;
connection = cf.createConnection(user, password);
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue(queue);
//((MQDestination)destination).setCCSID(37);
producer = session.createProducer(destination);
TextMessage message = session.createTextMessage();
message.setIntProperty(WMQConstants.JMS_IBM_CHARACTER_SET, 37);
//message.setIntProperty(WMQConstants.JMS_IBM_ENCODING, 785);
message.setText(msg);
// Start the connection
connection.start();
// And, send the message
producer.send(message);
}
Мне удалось подключиться к серверу MQ на другом конце и передать сообщения на удаленный сервер в формате ASCII. Мне удалось получить сообщение, которое я поставил в очередь с сервера AIX.
Но поскольку MQ работает на z / OS, а потребитель также является приложением для мэйнфреймов, сообщение, которое я помещаю, выглядит как мусорный / нечитаемый формат. После некоторого исследования я понял, что сообщения необходимо преобразовать в EBCDIC, чтобы их можно было разместить в z / OS MQ. Я ожидал, что этим займутся библиотеки IBM MQ.
Пожалуйста, помогите, как мне поместить сообщения в формат EBCDIC.