Condividi tramite


Come usare una connessione persistente con l'elaborazione di Host-Initiated

Una connessione persistente è una connessione che rimane aperta oltre la durata di una chiamata specifica. Poiché l'applicazione non deve ricreare la connessione in ogni chiamata, è possibile usare una connessione persistente per aumentare l'efficienza dell'applicazione avviata dall'host. Un'applicazione che usa una connessione persistente con l'elaborazione avviata dall'host (HIP) opera in molti modi allo stesso modo di un'elaborazione Windows-Initiated (WIP). La differenza, naturalmente, è che il mainframe avvia e termina la connessione, mentre l'applicazione windows risponde alle richieste del mainframe.

Nota

Host Integration Server supporta molti degli stessi ambienti di programmazione per HIP come per WIP. Le eccezioni sono IMS Connect, Distributed Program Call (DPC) e SNALink, che non sono supportate per le connessioni persistenti HIP.

Usare una connessione persistente con HIP

  1. Ricevere una chiamata con l'applicazione Windows dal mainframe, che indica che è stata creata una connessione.

    È responsabilità dell'applicazione mainframe richiedere la connessione persistente.

  2. Avere la risposta dell'applicazione Windows alla richiesta nel modo pertinente.

    Non è necessario eseguire alcuna operazione specifica dell'applicazione per usare una connessione persistente: la creazione e la terminazione della connessione è responsabilità dell'applicazione mainframe.

  3. Facoltativamente, è possibile creare una nuova istanza di HIPServerUserContext per eseguire query sullo stato della connessione.

    La nuova istanza viene creata automaticamente con le informazioni sul contesto per la connessione pertinente. Usando HIPServerUserConext, è possibile determinare il tipo di connessione creato dal mainframe e reagire di conseguenza.

Esempio

Il codice seguente viene estratto dall'applicazione di esempio CICS nell'SDK. L'esempio usa il CONNTYPE dell'oggetto server per eseguire azioni diverse.

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;  
        }  

L'esempio di codice usa una variabile globale per archiviare informazioni. È anche possibile usare l'oggetto contesto stesso per archiviare le informazioni. Anche se non illustrato qui, è possibile usare l'oggetto contesto per passare le informazioni all'applicazione windows.

Vedere anche

Connessioni permanenti