Prepare_To_Receive (CPI-C)
Der Prepare_To_Receive Aufrufs (Funktionsname cmptr) ändert den Zustand der Unterhaltung für das lokale Programm von SEND in RECEIVE.
Syntax
CM_ENTRY Prepare_To_Receive(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *return_code
);
Parameter
conversation_ID
Angegebener Parameter. Gibt den Bezeichner für die Unterhaltung an. Der Wert dieses Parameters wurde von Initialize_Conversation oder Accept_Conversation zurückgegeben.
return_code
Der von diesem Aufruf zurückgegebene Code. Die gültigen Rückgabecodes werden weiter unten in diesem Thema aufgeführt.
Rückgabecodes
CM_OK
Primärer Rückgabecode; der Aufruf wurde erfolgreich ausgeführt.
CM_OPERATION_NOT_ACCEPTED
Primärer Rückgabecode; ein vorheriger Vorgang für diese Unterhaltung ist unvollständig.
CM_OPERATION_INCOMPLETE
Primärer Rückgabecode; Der Vorgang wurde noch nicht abgeschlossen (der Verarbeitungsmodus ist nur nicht blockiert) und wird noch ausgeführt. Das Programm kann Wait_For_Conversation ausgeben, um den Abschluss des Vorgangs abzuwarten, oder Cancel_Conversation , den Vorgang und die Unterhaltung abzubrechen. Wenn Specify_Windows_Handle aufgerufen wurde, sollte die Anwendung auf eine Benachrichtigung durch eine Microsoft® Windows-Nachricht® warten und nicht Wait_For_Conversation aufrufen.
CM_PROGRAM_PARAMETER_CHECK
Primärer Rückgabecode; Der durch conversation_ID angegebene Wert ist ungültig.
CM_PROGRAM_STATE_CHECK
Primärer Rückgabecode; einer der folgenden Punkte ist aufgetreten:
Der Unterhaltungszustand ist weder SEND noch SEND_PENDING.
Bei einer einfachen Unterhaltung befindet sich die Unterhaltung im SEND-Zustand. Das Programm hat das Senden eines logischen Datensatzes jedoch nicht abgeschlossen.
Diese Rückgabecodes können auftreten, wenn der Unterhaltungstyp "Vorbereitung auf Empfang" auf CM_PREP_TO_RECEIVE_CONFIRM festgelegt ist oder wenn der Typ "Vorbereiten auf Empfangen" auf CM_PREP_TO_RECEIVE_SYNC_LEVEL festgelegt ist und die Synchronisierungsebene für Unterhaltungen auf CM_CONFIRM festgelegt ist.
CM_PRODUCT_SPECIFIC_ERROR
Primärer Rückgabecode; Ein produktspezifischer Fehler ist aufgetreten und wurde im Produktfehlerprotokoll protokolliert.CM_CONVERSATION_TYPE_MISMATCH
Primärer Rückgabecode; die partner logical unit (LU) oder das Programm unterstützt nicht den in der Zuordnungsanforderung angegebenen Konversationstyp (basic oder mapped).CM_PIP_NOT_SPECIFIED_CORRECTLY
Primärer Rückgabecode; die Zuordnungsanforderung wurde von einem Nicht-CPI-C LU 6.2-Transaktionsprogramm (TP) abgelehnt. Das Partnerprogramm erfordert eine oder mehrere PIP-Datenvariablen, die von CPI-C nicht unterstützt werden.CM_SECURITY_NOT_VALID
Primärer Rückgabecode; der in der Zuordnungsanforderung angegebene Benutzerbezeichner oder das Kennwort wurde von der Partner-LU nicht akzeptiert.CM_SYNC_LEVEL_NOT_SUPPORTED_PGM
Primärer Rückgabecode; das Partnerprogramm unterstützt die in der Zuordnungsanforderung angegebene Synchronisierungsebene nicht.CM_TPN_NOT_RECOGNIZED
Primärer Rückgabecode; Die Partner-LU erkennt den in der Zuordnungsanforderung angegebenen Programmnamen nicht.CM_TP_NOT_AVAILABLE_NO_RETRY
Primärer Rückgabecode; Die Partner-LU kann das in der Zuordnungsanforderung angegebene Programm aufgrund einer dauerhaften Bedingung nicht starten. Der Grund für den Fehler wird möglicherweise auf dem Remoteknoten protokolliert. Wiederholen Sie die Zuordnung erst, wenn der Fehler behoben wurde.CM_TP_NOT_AVAILABLE_RETRY
Primärer Rückgabecode; Die Partner-LU kann das in der Zuordnungsanforderung angegebene Programm aufgrund einer temporären Bedingung nicht starten. Der Grund für den Fehler wird möglicherweise auf dem Remoteknoten protokolliert. Wiederholen Sie die Zuordnung.CM_PROGRAM_ERROR_PURGING
Primärer Rückgabecode; einer der folgenden Punkte ist aufgetreten:Im Status "RECEIVE" oder "CONFIRM" hat das Partnerprogramm Send_Error ausgestellt. Gesendete, aber noch nicht empfangene Daten werden gelöscht.
In SEND_PENDING Zustand, in dem die Fehlerrichtung auf CM_RECEIVE_ERROR festgelegt ist, hat das Partnerprogramm Send_Error ausgegeben. Die Daten wurden nicht gelöscht.
CM_RESOURCE_FAILURE_NO_RETRY
Primärer Rückgabecode; einer der folgenden Punkte ist aufgetreten:Das Gespräch wurde aufgrund einer dauerhaften Bedingung vorzeitig beendet. Wiederholen Sie den Vorgang erst, wenn der Fehler behoben wurde.
Das Partnerprogramm hat die Zuordnung der Unterhaltung vor dem normalen Beenden nicht behandelt.
CM_RESOURCE_FAILURE_RETRY
Primärer Rückgabecode; die Unterhaltung wurde aufgrund einer vorübergehenden Bedingung, z. B. eines Modemfehlers, vorzeitig beendet. Wiederholen Sie die Unterhaltung.CM_DEALLOCATED_ABEND
Primärer Rückgabecode; die Konversation wurde aus einem der folgenden Gründe behandelt:Das Remoteprogramm hat Deallocate ausgegeben, wobei der Typparameter auf CM_DEALLOCATE_ABEND festgelegt ist, oder die Remote-LU hat dies aufgrund einer anomalien Endbedingung des Remoteprogramms getan. Wenn sich die Unterhaltung für das Remoteprogramm bei der Ausgabe des Anrufs im RECEIVE-Zustand befand, werden die vom lokalen Programm gesendeten und noch nicht vom Remoteprogramm empfangenen Informationen gelöscht.
Der Remote-TP wurde normal beendet, aber die Zuordnung der Unterhaltung vor dem Beenden nicht abgeschlossen. Knotendienste auf der Remote-LU haben die Konversation im Namen des Remote-TP zugeordnet.
CM_DEALLOCATED_ABEND_SVC
Primärer Rückgabecode; die Konversation wurde aus einem der folgenden Gründe behandelt:Das Partnerprogramm hat Deallocate ausgestellt, wobei der Typparameter auf ABEND_SVC festgelegt ist.
Das Partnerprogramm hat die Zuweisung der Unterhaltung vor dem Beenden nicht behandelt.
Wenn sich die Unterhaltung im STATUS RECEIVE für das Partnerprogramm befindet, wenn dieser Aufruf vom lokalen Programm ausgegeben wird, werden die vom lokalen Programm gesendeten und noch nicht vom Partnerprogramm empfangenen Daten gelöscht.
CM_DEALLOCATED_ABEND_TIMER
Primärer Rückgabecode; die Konversation wurde zugeordnet, da das Partnerprogramm Deallocate mit dem typparameter auf ABEND_TIMER festgelegt hat. Wenn sich die Unterhaltung im STATUS RECEIVE für das Partnerprogramm befindet, wenn dieser Aufruf vom lokalen Programm ausgegeben wird, werden die vom lokalen Programm gesendeten und noch nicht vom Partnerprogramm empfangenen Daten gelöscht.CM_SVC_ERROR_PURGING
Primärer Rückgabecode; im SEND-Zustand hat das Partnerprogramm oder die Partner-LU Send_Error ausgestellt, wobei der Typparameter auf SVC festgelegt ist. Daten, die an das Partnerprogramm gesendet wurden, wurden möglicherweise gelöscht.Zustandsänderungen
Die Unterhaltung kann sich im SEND- oder SEND_PENDING Zustand befinden.
Zustandsänderungen, die in der folgenden Tabelle zusammengefasst sind, basieren auf dem Wert des return_code-Parameters .
return_code | Neuer Zustand |
---|---|
CM_OK | RECEIVE |
CM_PROGRAM_ERROR_PURGING | RECEIVE |
CM_SVC_ERROR_PURGING | RECEIVE |
CM_CONVERSATION_TYPE_MISMATCH | RESET |
CM_PIP_NOT_SPECIFIED_CORRECTLY | RESET |
CM_SECURITY_NOT_VALID | RESET |
CM_SYNC_LEVEL_NOT_SUPPORTED_PGM | RESET |
CM_TPN_NOT_RECOGNIZED | RESET |
CM_TP_NOT_AVAILABLE_NO_RETRY | RESET |
CM_TP_NOT_AVAILABLE_RETRY | RESET |
CM_DEALLOCATED_ABEND | RESET |
CM_RESOURCE_FAILURE_NO_RETRY | RESET |
CM_RESOURCE_FAILURE_RETRY | RESET |
CM_DEALLOCATED_ABEND_SVC | RESET |
CM_DEALLOCATED_ABEND_TIMER | RESET |
Alle anderen | Keine Änderung |
Vor dem Ändern des Konversationszustands führt dieser Aufruf die Entsprechung einer der folgenden Ausrufe aus:
Der Flush-Aufruf , der den Inhalt der lokalen LUs sendet, sendet puffer an die Partner-LU und das Programm, wenn eine der folgenden Bedingungen zutrifft:
Der Typ "Vorbereiten auf empfangene Unterhaltungen" ist auf CM_PREP_TO_RECEIVE_FLUSH festgelegt.
Der Typ "Vorbereiten auf empfangene Unterhaltungen" ist auf CM_PREP_TO_RECEIVE_SYNC_LEVEL und die Synchronisierungsebene für Unterhaltungen auf CM_NONE festgelegt.
Der Confirm-Aufruf , der den Inhalt der lokalen LUs sendet, sendet Puffer und eine Bestätigungsanforderung an das Partnerprogramm, wenn eine der folgenden Bedingungen zutrifft:
Der Typ "Vorbereiten auf empfangene Unterhaltungen" ist auf CM_PREP_TO_RECEIVE_CONFIRM festgelegt.
Der Typ "Vorbereiten auf empfangene Unterhaltungen" ist auf CM_PREP_TO_RECEIVE_SYNC_LEVEL und die Synchronisierungsebene für Unterhaltungen auf CM_CONFIRM festgelegt.
Der Typ "Prepare-to-Receive" wird durch Set_Prepare_To_Receive_Type festgelegt. Die Synchronisierungsebene wird durch Set_Sync_Level festgelegt.
Die Unterhaltung kann für das Partnerprogramm erst dann in SEND oder SEND_PENDING geändert werden, wenn das Partnerprogramm einen der folgenden Werte über den parameter status_received des Empfangsaufrufs empfängt:
CM_SEND_RECEIVED
CM_CONFIRM_SEND_RECEIVED und Antworten mit dem Anruf "Bestätigt" oder "Send_Error"
Hinweise
Nachdem dieser Aufruf erfolgreich ausgeführt wurde, kann das lokale Programm Daten empfangen.