APPC-Verben und Windows-Erweiterungen
In diesem Thema werden die APPC-Verben und Windows-Erweiterungen beschrieben, die von Host Integration Server unterstützt werden:
APPC-Verben
Die folgenden APPC-Verbbeschreibungen enthalten wichtige Features und sollten vor der Verwendung dieser Version von Windows APPC gelesen werden.
ALLOCATE oder MC_ALLOCATE
Vom aufrufenden Transaktionsprogramm (TP) ausgegeben, ordnet dieses Verb eine Sitzung zwischen der lokalen logischen Einheit (LU) und der Partner-LU zu und stellt (in Verbindung mit RECEIVE_ALLOCATE) eine Konversation zwischen dem aufrufenden TP und dem aufrufenden TP ein. Nachdem dieses Verb erfolgreich ausgeführt wurde, generiert APPC einen Konversationsbezeichner (conv_id). Der conv_id ist ein erforderlicher Parameter für alle anderen APPC-Konversationsverben.
Für einen Benutzer oder eine Gruppe, die TPs, 5250-Emulatoren oder APPC-Anwendungen verwendet, können Sie lokale Standard- und Remote-LUs zuweisen. In diesem Fall bleibt das Feld für den LU-Alias leer oder NULL, und auf die Standard-LUs wird zugegriffen, wenn der Benutzer oder das Gruppenmitglied ein APPC-Programm startet. Weitere Informationen zur Verwendung von Standard-LUs finden Sie im Abschnitt Netzwerkintegration der Microsoft Host Integration Server-Hilfe.
RECEIVE_ALLOCATE
Wird vom aufrufbaren TP ausgegeben, um zu bestätigen, dass es bereit ist, eine Konversation mit dem aufrufenden TP zu beginnen, der ALLOCATE oder MC_ALLOCATE ausgestellt hat. Dies muss das erste APPC-Verb sein, das vom aufrufbaren TP ausgegeben wird. Der Anfangszustand ist RESET. Wenn das Verb erfolgreich ausgeführt wird (primary_rc AP_OK ist), ändert sich der Status in RECEIVE.
RECEIVE_AND_POST oder MC_RECEIVE_AND_POST
Empfängt Anwendungsdaten und status Informationen asynchron. Dies ermöglicht es dem lokalen TP, mit der Verarbeitung fortzufahren, während die Daten noch bei der lokalen LU ankommen. RECEIVE_AND_POST und MC_RECEIVE_AND_POST werden nur vom Windows-Betriebssystem unterstützt.
Während ein asynchroner RECEIVE_AND_POST oder MC_RECEIVE_AND_POST aussteht, können die folgenden Verben ausgegeben werden:
REQUEST_TO_SEND oder MC_REQUEST_TO_SEND
GET_TYPE
GET_ATTRIBUTES oder MC_GET_ATTRIBUTES
TEST_RTS oder MC_TEST_RTS
DEALLOCATE
SEND_ERROR oder MC_SEND_ERROR
TP_ENDED
RECEIVE_AND_WAIT oder MC_RECEIVE_AND_WAIT
Empfängt alle Daten, die derzeit vom Partner TP verfügbar sind. Wenn derzeit keine Daten verfügbar sind, wartet der lokale TP auf das Eintreffen von Daten.
RECEIVE_AND_WAIT und MC_RECEIVE_AND_WAIT wurden so geändert, dass sie sich wie RECEIVE_AND_POST und MC_RECEIVE_AND_POST verhalten. Während ein asynchroner RECEIVE_AND_WAIT oder MC_RECEIVE_AND_WAIT aussteht, können die folgenden Verben ausgegeben werden:
REQUEST_TO_SEND oder MC_REQUEST_TO_SEND
GET_TYPE
GET_ATTRIBUTES oder MC_GET_ATTRIBUTES
TEST_RTS oder MC_TEST_RTS
DEALLOCATE
SEND_ERROR oder MC_SEND_ERROR
TP_ENDED
TP_STARTED
Dieses Verb wird vom aufrufenden TP ausgegeben und benachrichtigt APPC, dass der TP gestartet wird. Für einen Benutzer oder eine Gruppe, die TPs, 5250-Emulatoren oder APPC-Anwendungen verwendet, können Sie standardmäßige lokale und Remote-APPC-LUs zuweisen. Auf diese Standard-LUs wird zugegriffen, wenn der Benutzer oder das Gruppenmitglied ein APPC-Programm (TP, 5250-Emulator oder APPC-Anwendung) startet und das Programm keine LU-Aliase angibt. Weitere Informationen zur Verwendung von Standard-LUs finden Sie in der Hilfe zur Netzwerkintegration.
Grenzwerte
Host Integration Server lässt einen ausstehenden asynchronen Windows APPC-Aufruf pro Verbindung und ein blockierende Verb pro Thread zu. Beispiel:
void ProcessVerbCompletion (WPARAM wParam, LPARAM lParam)
{
int i;
for (i = 0; i < nPendingVerbs; i++)
if (pPendingVerbs[i].hAsync == wParam)
ProcessVCB( (LPVCB) lParam);
} . . .
LRESULT CALLBACK SampleWndProc ( ... )
{
if (msg == uAsyncAPPC) {
ProcessVerbCompletion(wParam; lParam);
}
else switch (msg) {
case WM_USER:
if (hAsync = WinAsyncAPPC(hwnd, &vcb))
pPendingVerbs [nPendingVerbs++].hAsync = hAsync;
break;
}
}
WinMain ( ... )
{
if ( ( WinAPPCStartup ( ...) = = FALSE ) {
return FALSE ;
}
uAsyncAPPC = RegisterWindowsMessage ("WinAsyncAPPC") ;
while (GetMessage ( ...) ) {
...
WinAPPCCleanup ( ... )
}
Hinweis
Die Ausnahmen von der Regel eines ausstehenden asynchronen Aufrufs sind RECEIVE_AND_POST, MC_RECEIVE_AND_POST, RECEIVE_AND_WAIT und MC_RECEIVE_AND_WAIT. Während diese Verben ausstehend sind, können bestimmte andere Verben auch genannt werden.