Мы отправляем данные через MQ из системы z / OS / CICS в AS400.

Исходная кодировка сообщения - CCSID 500 с форматом MQSTR. Клиентское приложение получает сообщение с опцией CONVERT и CCSID 819.

Данные преобразованы почти правильно, за исключением символа конца строки. Любая идея? Z / OS отправляет 0D (CR) в качестве символа конца строки. Если у них было 0D + 0A (CR + LF), CCSID автоматически изменится с 500 на 437, и конец строки все еще не соответствует действительности на стороне клиента.

0
lemotdit 22 Янв 2010 в 17:50

2 ответа

Лучший ответ

У нас возникла проблема с неправильной настройкой CCSID администратора очередей и использованием неправильной таблицы преобразования.

0
lemotdit 16 Июн 2010 в 18:50

Вы уже пробовали только "0A" (LF)? Вы пробовали без явного КОНВЕРТА? У нас никогда не было проблем с этой частью преобразования, и наша машина взаимодействует с Windows, AIX, Linux и т. Д. Почти все время мы полагаемся на автоматические преобразования.

Кроме того, вы можете проверить ПОЛЬЗОВАТЕЛЯ вашего задания, который выбирает сообщение MQ из очереди. Большую часть времени ПОЛЬЗОВАТЕЛЬ использует системные атрибуты (как определено в соответствующем SYSVAL). Возможно, этот пользовательский профиль настроен очень специфично и отличается от SYSVAL, который останавливает iSeries при правильном автоматическом преобразовании.

В качестве простого теста отправьте данные по FTP в iSeries. Это также вызовет автоматическое преобразование с использованием системных таблиц (WRKTBL). Это может указывать на ошибку в этой конфигурации.

1
robertnl 22 Янв 2010 в 23:04