Síntomas
Una aplicación de Session Integrator que utiliza la interfaz de programación LU0 devuelve el siguiente error cuando recibe una respuesta de una aplicación de mainframe:
Nota
Mensaje: El encabezado de gestión de funciones devuelto por el host contenía una longitud no válida.
Código de error: Microsoft.HostIntegration.SNA.Session.SessionStatus.FMHLengthError"
Causa
Este problema se produce cuando una aplicación de mainframe envía datos al integrador de sesiones que tiene el bit de encabezado de administración de funciones (FMH) en el encabezado de respuesta (RH) establecido en 1. Esta configuración indica que se incluyen uno o más encabezados de administración de funciones (FM) en la respuesta. En la situación que se describe en la sección "Síntomas", la respuesta del mainframe no incluye ningún encabezado FM. Esto hace que la respuesta se analice incorrectamente. Este problema de análisis provoca el error.
Resolución
Información sobre la actualización acumulativa
La corrección que resuelve este problema se incluye en la actualización acumulativa 2 para Host Integration Server 2013.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Más información
Después de aplicar esta actualización, puede controlar el análisis de encabezados FM por parte de Session Integrator mediante una opción de configuración en la interfaz de programación LU0. De forma predeterminada, Session Integrator intenta analizar los encabezados FM si el bit FMH está establecido en el encabezado Response.
Si la aplicación LU0 del integrador de sesiones utiliza una cadena de conexión para conectarse al mainframe de IBM, se puede añadir el parámetro siguiente a la cadena de conexión para deshabilitar el análisis de FMH:
FUNCTIONMANAGEMENTHEADERS=NONE
A continuación se muestra un ejemplo de una cadena de conexión con esta nueva propiedad:
_session. Connect("FUNCTIONMANAGEMENTHEADERS=NONE; LogicalUnitName=" + LUName.Text, SessionLU0InitType.SSCP);
Nota: Esta cadena de conexión se basa en la cadena de conexión que se utiliza en la muestra de integrador de sesiones LU0NET que se incluye en el SDK de Host Integration Server 2013.
Si la propiedad FUNCTIONMANAGEMENTHEADERS no está incluida en la cadena de conexión, o si la propiedad está establecida en FUNCTIONMANAGEMENTHEADERS=INCLUDE, y si el bit FMH está establecido en 1, Session Integrator intenta analizar las cabeceras FM en los datos que recibe de la aplicación mainframe de IBM.
Si Session Integrator utiliza la clase SessionConnectionLU0 para especificar las propiedades de conexión que se utilizarán cuando se conecte al sistema central de IBM, el análisis de la cabecera FM se controla utilizando la propiedad siguiente:
FunctionManagementHeaderSupportLa nueva propiedad FunctionManagementHeaderSupport admite los siguientes valores:
FunctionManagementHeaderSupport.Include
FunctionManagementHeaderSupport.NoneA continuación se muestra un ejemplo de cómo usar la clase SessionConnectionLU0 para especificar un nombre de LU, una página de códigos de host y para deshabilitar el análisis de encabezados FM:
SessionConnectionLU0 _connection = new SessionConnectionLU0();
_connection. LogicalUnitName = LUName.Text;
_connection. HostCodePage = 37;
_connection. FunctionManagementHeaderSupport.None; Si no se especifica la propiedad FunctionManagementHeaderSupport, el comportamiento predeterminado es que Session Integrator analiza las cabeceras FM en cualquier respuesta recibida de la aplicación de mainframe de IBM si el bit FMH se establece en 1.
Aviso de declinación de responsabilidades sobre la información de terceros
Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.