Cómo usar una conexión persistente con procesamiento de Host-Initiated

Una conexión persistente es una conexión que permanece abierta más allá de la duración de una llamada específica. Dado que la aplicación no necesita volver a crear la conexión en cada llamada, puede usar una conexión persistente para aumentar la eficacia de la aplicación iniciada por host. Una aplicación que usa una conexión persistente con el procesamiento iniciado por host (HIP) funciona de muchas maneras de la misma manera que un procesamiento de Windows-Initiated (WIP). La diferencia, por supuesto, es que el sistema central inicia y finaliza la conexión, mientras que la aplicación windows responde a las solicitudes del sistema central.

Nota

Host Integration Server admite muchos de los mismos entornos de programación para HIP que para WIP. Las excepciones son IMS Connect, Distributed Program Call (DPC) y SNALink, que no son compatibles con conexiones persistentes HIP.

Uso de una conexión persistente con HIP

  1. Reciba una llamada con la aplicación de Windows desde el sistema central, lo que indica que se ha creado una conexión.

    Es responsabilidad de la aplicación del sistema central solicitar la conexión persistente.

  2. Haga que la aplicación de Windows reaccione a la solicitud de la manera pertinente.

    No hay nada específico que la aplicación debe hacer para usar una conexión persistente: la creación y finalización de la conexión es responsabilidad de la aplicación del sistema central.

  3. Opcionalmente, puede crear una nueva instancia de HIPServerUserContext para consultar el estado de la conexión.

    La nueva instancia se crea automáticamente con la información de contexto de la conexión pertinente. Con HIPServerUserConext, puede determinar qué tipo de conexión ha creado el sistema central y reaccionar en consecuencia.

Ejemplo

El código siguiente se extrae de la aplicación de ejemplo CICS en el SDK. En el ejemplo se usa el CONNTYPE del objeto de servidor para realizar diferentes acciones.

decimal GetAccountBalance(object[] contextArray)  
        {  
            decimal ReturnBalance = 0.0m;  
            string ConnType;  
            object contextValue;  
  
            _TIServerContext.ReadContext("CONNTYPE", out contextValue, ref contextArray);  
  
            if (contextValue == null)  
                ReturnBalance = 123.45m;  
            else  
            {  
                ConnType = contextValue.ToString();  
                ConnType.ToUpper();  
                switch (ConnType)  
                {  
                    case "OPEN":  
 // Set the initial value of the Account Balance  
 // and save it in a global varaible and return it.  
                        ReturnBalance = 123.45m;  
                        _AccountBalance = ReturnBalance;  
                        break;  
  
                    case "USE":  
 // Increase the value of the global Account Balance  
 // varaible and return its value. Save this new value  
 // in the global variable for later use  
                        _AccountBalance += 100;  
                        ReturnBalance = _AccountBalance;  
                        break;  
  
                    case "CLOSE":  
 // Increase the value of the global Account Balance  
 // variable and return the new value. Set the global variable  
 // to zero because the "CLOSE" call indicates that we are   
 // done with it.  
                        ReturnBalance = _AccountBalance + 150;  
                        _AccountBalance = 0.0m;  
                        break;  
  
                    case "UNKNOWN":  
                    default:  
                        _AccountBalance = 0.0m;  
                        ReturnBalance = 123.45m;  
                        break;  
                }  
            }  
  
            return ReturnBalance;  
        }  

El ejemplo de código usa una variable global para almacenar información. También es posible usar el propio objeto de contexto para almacenar información. Aunque no se muestra aquí, es posible usar el objeto de contexto para volver a pasar información a la aplicación windows.

Consulte también

Conexiones persistentes