Confirm (CPI-C)
Der Confirm-Aufruf (Funktionsname cmcfm) sendet den Inhalt des Sendepuffers der lokalen logischen Einheit (LU) und eine Bestätigungsanforderung an das Partnerprogramm und wartet auf die Bestätigung. Führen Sie für Microsoft Windows einen Hintergrundthread für die gesamte CPI-C-Kommunikation aus, und behalten Sie den Vordergrundthread nur für die Benutzeroberfläche bei.
Syntax
CM_ENTRY Confirm(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *request_to_send_received,
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.
request_to_send_received
Zurückgegebener Parameter. Stellt den Request-to-Send-Received-Indikator bereit. Mögliche Werte:
CM_REQ_TO_SEND_RECEIVED
Das Partnerprogramm hat Request_To_Send ausgegeben, das das lokale Programm auffordert, die Unterhaltung in den RECEIVE-Status zu ändern.
CM_REQ_TO_SEND_NOT_RECEIVED
Das Partnerprogramm hat keine Request_To_Send. Dieser Wert ist nicht relevant, wenn return_code auf CM_PROGRAM_PARAMETER_CHECK oder CM_PROGRAM_STATE_CHECK festgelegt ist.
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. Das Partnerprogramm hat den bestätigten Anruf ausgegeben.
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 Windows-Nachricht warten und nicht Wait_For_Conversation aufrufen.
CM_PROGRAM_PARAMETER_CHECK
Primärer Rückgabecode; einer der folgenden Punkte ist aufgetreten:
Der durch conversation_ID angegebene Wert ist ungültig.
Das lokale Programm hat versucht, bestätigen in einer Unterhaltung mit der Synchronisierungsebene CM_NONE zu verwenden. Die Synchronisierungsebene muss CM_CONFIRM sein.
CM_PROGRAM_STATE_CHECK
Primärer Rückgabecode; einer der folgenden Punkte ist aufgetreten:Die Unterhaltung befand sich nicht im SEND- oder SEND_PENDING Zustand.
Die grundlegende Unterhaltung für das lokale Programm befand sich im SEND-Zustand, und das lokale Programm hat das Senden eines logischen Datensatzes nicht abgeschlossen.
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-LU oder das Programm unterstützt nicht den in der Zuordnungsanforderung angegebenen Konversationstyp (basic oder zugeordnet).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 wird 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. 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.
Das Partnerprogramm wurde normal beendet, aber die Zuordnung der Unterhaltung vor dem Beenden nicht abgeschlossen.
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, wenn Die Bestätigung ausgegeben wird.
Zustandsänderungen, die in der folgenden Tabelle zusammengefasst sind, basieren auf dem Wert des return_code-Parameters .
return_code | Neuer Zustand |
---|---|
CM_OK | Keine Änderung |
Der Anruf wurde im SEND-Zustand ausgegeben. | Keine Änderung |
Der Anruf wurde im Zustand SEND_PENDING ausgegeben. | SEND |
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_RESOURCE_FAILURE_NO_RETRY | RESET |
CM_RESOURCE_FAILURE_RETRY | RESET |
CM_DEALLOCATED_ABEND | RESET |
CM_DEALLOCATED_ABEND_SVC | RESET |
CM_DEALLOCATED_ABEND_TIMER | RESET |
Alle anderen | Keine Änderung |
Hinweise
Als Antwort auf Bestätigen gibt das Partnerprogramm in der Regel Bestätigt aus, um zu bestätigen, dass die Daten ohne Fehler empfangen wurden. (Wenn beim Partnerprogramm ein Fehler auftritt, gibt es Send_Error oder verwendet Deallocate , um die Zuordnung der Unterhaltung ungewöhnlich zu aufheben.)
Das Programm kann bestätigen nur dann ausgeben, wenn die Synchronisierungsebene für Unterhaltungen CM_CONFIRM ist.
Bestätigen Sie, dass auf eine Antwort des Partnerprogramms wartet. Eine Antwort wird durch einen der folgenden CPI-C-Aufrufe im Partnerprogramm generiert:
Bestätigt
Send_Error
5Zuweisung aufheben, wobei der Typ "Aufheben der Zuordnung von Unterhaltungen" auf CM_DEALLOCATE_ABEND