ВИПРАВЛЕННЯ. "Заголовок керування функціями, повернутий із хоста, містив неприпустиму довжину" під час використання програми Session Integrator

Застосовується до
Host Integration Server 2013

Ознаки

Програма інтегратора сеансів, що використовує програмний інтерфейс 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.

Застереження щодо інформації третіх осіб

Описані в цій статті продукти сторонніх виробників створюються компаніями, які не залежать від корпорації Майкрософт. Корпорація Майкрософт не надає жодних гарантій (непрямих та інших) щодо продуктивності й надійності цих продуктів.