Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bei einer dauerhaften Verbindung handelt es sich um eine Verbindung, die über die Dauer eines bestimmten Anrufs geöffnet bleibt. Da Ihre Anwendung die Verbindung für jeden Aufruf nicht erneut erstellen muss, können Sie eine dauerhafte Verbindung verwenden, um die Effizienz Ihrer vom Host initiierten Anwendung zu erhöhen. Eine Anwendung, die eine dauerhafte Verbindung mit vom Host initiierter Verarbeitung (HIP) verwendet, funktioniert auf vielfältige Weise wie eine Windows-Initiated Verarbeitung (WIP). Der Unterschied besteht natürlich darin, dass der Großrechner die Verbindung initiiert und beendet, während die Windows-Anwendung auf die Anforderungen des Mainframes reagiert.
Hinweis
HostIntegration Server unterstützt viele der gleichen Programmierumgebungen für HIP wie für WIP. Die Ausnahmen sind IMS Connect, Distributed Program Call (DPC) und SNALink, die für HIP persistente Verbindungen nicht unterstützt werden.
Verwenden Sie eine dauerhafte Verbindung mit HIP
Erhalten Sie einen Anruf mit Ihrer Windows-Anwendung vom Großrechner, der angibt, dass eine Verbindung erstellt wurde.
Es liegt in der Verantwortung der Großrechneranwendung, die persistente Verbindung anzufordern.
Lassen Sie Ihre Windows-Anwendung auf die Anforderung entsprechend reagieren.
Es gibt nichts Spezifisches, was Ihre Anwendung tun muss, um eine dauerhafte Verbindung zu verwenden: Das Erstellen und Beenden der Verbindung ist die Verantwortung der Großrechneranwendung.
Optional können Sie eine neue Instanz des HIPServerUserContext erstellen, um den Status der Verbindung abzufragen.
Die neue Instanz wird automatisch mit den Kontextinformationen für die relevante Verbindung erstellt. Mithilfe von HIPServerUserConext können Sie bestimmen, welche Art von Verbindung der Mainframe erstellt hat, und entsprechend reagieren.
Beispiel
Der folgende Code wird aus der CICS-Beispielanwendung im SDK abgerufen. Im Beispiel wird der CONNTYPE des Serverobjekts verwendet, um verschiedene Aktionen auszuführen.
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;
}
Im Codebeispiel wird eine globale Variable zum Speichern von Informationen verwendet. Es ist auch möglich, das Kontextobjekt selbst zum Speichern von Informationen zu verwenden. Obwohl hier nicht gezeigt, ist es möglich, mithilfe des Kontextobjekts Informationen an die Windows-Anwendung zurückzugeben.