Ознаки
Програма інтегратора сеансів, що використовує програмний інтерфейс LU0, отримуючи відповідь від мейнфреймової програми, повертає таку помилку:
Примітка.
Повідомлення: Заголовок керування функціями, повернутий із хоста, містив неприпустиму довжину.
Код помилки: Microsoft.HostIntegration.SNA.Session.SessionStatus.FMHLengthError"
Причина
Ця проблема виникає, коли програма-мейнфрейм надсилає дані до Session Integrator, у якому біт заголовка керування функціями (FMH) у заголовку відповіді (RH) встановлено на 1. Цей параметр вказує на те, що до відповіді включено один або кілька заголовків керування функціями (FM). У ситуації, яка описана в розділі «Симптоми», відповідь мейнфрейма не містить жодних FM-заголовків. Це призводить до неправильного аналізу відповіді. Ця проблема аналізу призводить до виникнення помилки.
Спосіб усунення проблеми
Сукупні відомості про оновлення
Виправлення, яке усуває цю проблему, входить у сукупний пакет оновлень 2 для Host Integration Server 2013.
Стан
Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".
Додаткові відомості
Після застосування цього оновлення ви можете керувати аналізом FM-заголовків Session Integrator за допомогою параметра конфігурації в інтерфейсі програмування LU0. За замовчуванням Session Integrator намагається аналізувати FM-заголовки, якщо біт FMH встановлено в заголовку Response.
Якщо додаток Session Integrator LU0 використовує рядок підключення для підключення до мейнфреймів IBM, то для відключення парсингу FMH в рядок підключення можна додати наступний параметр:
FUNCTIONMANAGEMENTHEADERS=NONE
Нижче наведено приклад рядок підключення, до якого додано цю нову властивість:
_session. Connect("FUNCTIONMANAGEMENTHEADERS=NONE; LogicalUnitName=" + LUName.Text, SessionLU0InitType.SSCP);
Примітка. Цей connection stringрядок підключення базується на connection stringрядок підключення, який використовується в зразку LU0NET Session Integrator, що входить до пакета SDK Host Integration Server 2013.
Якщо властивість FUNCTIONMANAGEMENTHEADERS не включена в рядок підключення, або якщо властивість має значення FUNCTIONMANAGEMENTHEADERS=INCLUDE, і якщо біт FMH дорівнює 1, Session Integrator намагається проаналізувати FM-заголовки в даних, отриманих від мейнфреймів IBM.
Якщо Session Integrator використовує клас SessionConnectionLU0 для визначення властивостей підключення під час підключення до мейнфреймів IBM, то аналіз FM-заголовків контролюється за допомогою такої властивості:
FunctionManagementHeaderSupportнова властивість FunctionManagementHeaderSupport підтримує такі значення:
FunctionManagementHeaderSupport.Include
FunctionManagementHeaderSupport.NoneНижче наведено приклад використання класу SessionConnectionLU0 для визначення імені LU, кодової сторінки хоста та вимкнення аналізу FM-заголовків:
SessionConnectionLU0 _connection = new SessionConnectionLU0();
_connection. LogicalUnitName = LUName.Text;
_connection. HostCodePage = 37;
_connection. FunctionManagementHeaderSupport.None; Якщо властивість FunctionManagementHeaderSupport не вказана, то за замовчуванням Session Integrator аналізує FM-заголовки в будь-якій відповіді, яка надходить від мейнфреймів IBM, якщо біт FMH встановлено на 1.
Застереження щодо інформації третіх осіб
Описані в цій статті продукти сторонніх виробників створюються компаніями, які не залежать від корпорації Майкрософт. Корпорація Майкрософт не надає жодних гарантій (непрямих та інших) щодо продуктивності й надійності цих продуктів.