Freigeben über


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 alle 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 Anforderungs-zu-Sende-Empfangen-Indikator bereit. Mögliche Werte:

CM_REQ_TO_SEND_RECEIVED
Das Partnerprogramm hat Request_To_Send ausgestellt, das das lokale Programm anfordert, die Unterhaltung in den STATUS EMPFANGEN zu ändern.

CM_REQ_TO_SEND_NOT_RECEIVED
Das Partnerprogramm hat Request_To_Send nicht behoben. 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 ausgestellt.

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 nicht abgeschlossen (der Verarbeitungsmodus ist nur nicht blockiert) und wird noch ausgeführt. Das Programm kann Wait_For_Conversation ausgeben, um auf den Abschluss des Vorgangs zu warten, oder Cancel_Conversation , um den Vorgang und die Unterhaltung abzubrechen. Wenn Specify_Windows_Handle aufgerufen wurde, sollte die Anwendung auf die Benachrichtigung durch eine Windows-Nachricht warten und nicht Wait_For_Conversation aufrufen.

CM_PROGRAM_PARAMETER_CHECK
Primärer Rückgabecode; einer der folgenden Ereignisse:

  • Der durch conversation_ID angegebene Wert ist ungültig.

  • Das lokale Programm hat versucht, "Bestätigen " in einer Unterhaltung mit einer Synchronisierungsebene von CM_NONE zu verwenden. Die Synchronisierungsebene muss CM_CONFIRM werden.

    CM_PROGRAM_STATE_CHECK
    Primärer Rückgabecode; einer der folgenden Ereignisse:

  • Die Unterhaltung war nicht im Status "SENDEN" oder "SEND_PENDING".

  • 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 Fehlerprotokoll der Produkte protokolliert.

    CM_CONVERSATION_TYPE_MISMATCH
    Primärer Rückgabecode; die Partner-LU oder das Programm unterstützt nicht den in der Zuordnungsanforderung angegebenen Unterhaltungstyp (einfach 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 in der Zuordnungsanforderung angegebene Kennwort wird von der Partner-LU nicht akzeptiert.

    CM_SYNC LEVEL_NOT_SUPPORTED_PGM
    Primärer Rückgabecode; Das Partnerprogramm unterstützt nicht die in der Zuordnungsanforderung angegebene Synchronisierungsebene.

    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 kann auf dem Remoteknoten protokolliert werden. 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 kann auf dem Remoteknoten protokolliert werden. Wiederholen Sie die Zuordnung.

    CM_PROGRAM_ERROR_PURGING
    Primärer Rückgabecode; einer der folgenden Ereignisse:

  • Während des Status "EMPFANGEN" oder "BESTÄTIGEN" hat das Partnerprogramm Send_Error ausgestellt. Gesendete, aber noch nicht empfangene Daten werden gelöscht.

  • Während in SEND_PENDING Zustand, in dem die Fehlerrichtung auf CM_RECEIVE_ERROR festgelegt ist, hat das Partnerprogramm Send_Error ausgestellt. Daten wurden nicht gelöscht.

    CM_RESOURCE_FAILURE_NO_RETRY
    Primärer Rückgabecode; einer der folgenden Ereignisse:

  • Die Unterhaltung wurde aufgrund einer dauerhaften Bedingung vorzeitig beendet. Wiederholen Sie den Vorgang erst, wenn der Fehler korrigiert wurde.

  • Das Partnerprogramm hat die 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. modemausfall, vorzeitig beendet. Wiederholen Sie die Unterhaltung.

    CM_DEALLOCATED_ABEND
    Primärer Rückgabecode; die Unterhaltung wurde aus einem der folgenden Gründe umgestellt:

  • Das Remoteprogramm hat Deallocate ausgestellt, wobei der Typparameter auf CM_DEALLOCATE_ABEND festgelegt ist. Wenn sich die Unterhaltung für das Remoteprogramm beim Senden des Anrufs im EMPFANGSzustand befand, werden informationen, die vom lokalen Programm gesendet und noch nicht vom Remoteprogramm empfangen wurden, gelöscht.

  • Das Partnerprogramm wurde normal beendet, hat die Unterhaltung jedoch nicht vor dem Beenden behandelt.

    CM_DEALLOCATED_ABEND_SVC
    Primärer Rückgabecode; die Unterhaltung wurde aus einem der folgenden Gründe umgestellt:

  • Das Partnerprogramm hat Deallocate ausgestellt, wobei der Typparameter auf ABEND_SVC festgelegt ist.

  • Das Partnerprogramm hat die Unterhaltung vor dem Beenden nicht behandelt.

    Wenn sich die Unterhaltung im STATUS RECEIVE für das Partnerprogramm befindet, wenn dieser Anruf vom lokalen Programm ausgestellt wird, werden die vom lokalen Programm gesendeten Daten und noch nicht vom Partnerprogramm empfangen.

    CM_DEALLOCATED_ABEND_TIMER
    Primärer Rückgabecode; die Unterhaltung wurde abgeglichen, da das Partnerprogramm Deallocate mit dem Typparameter ausgegeben hat, der auf ABEND_TIMER festgelegt ist. Wenn sich die Unterhaltung im STATUS RECEIVE für das Partnerprogramm befindet, wenn dieser Anruf vom lokalen Programm ausgestellt wird, werden die vom lokalen Programm gesendeten Daten und noch nicht vom Partnerprogramm empfangen.

    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 werden, wurden möglicherweise gelöscht.

    Statusänderungen

    Die Unterhaltung kann sich im Status "SENDEN" oder "SEND_PENDING" befinden, wenn "Bestätigen" ausgegeben wird.

    Zustandsänderungen, zusammengefasst in der folgenden Tabelle, basieren auf dem Wert des return_code-Parameters .

return_code Neuer Zustand
CM_OK Keine Änderung
Anruf wurde im SEND-Status ausgegeben Keine Änderung
Anruf wurde in SEND_PENDING Zustand ausgegeben SEND
CM_PROGRAM_ERROR_PURGING RECEIVE
CM_SVC_ERROR_PURGING RECEIVE
CM_CONVERSATION_TYPE_MISMATCH ZURÜCKSETZEN
CM_PIP_NOT_SPECIFIED_CORRECTLY ZURÜCKSETZEN
CM_SECURITY_NOT_VALID ZURÜCKSETZEN
CM_SYNC_LEVEL_NOT_SUPPORTED_PGM ZURÜCKSETZEN
CM_TPN_NOT_RECOGNIZED ZURÜCKSETZEN
CM_TP_NOT_AVAILABLE_NO_RETRY ZURÜCKSETZEN
CM_TP_NOT_AVAILABLE_RETRY ZURÜCKSETZEN
CM_RESOURCE_FAILURE_NO_RETRY ZURÜCKSETZEN
CM_RESOURCE_FAILURE_RETRY ZURÜCKSETZEN
CM_DEALLOCATED_ABEND ZURÜCKSETZEN
CM_DEALLOCATED_ABEND_SVC ZURÜCKSETZEN
CM_DEALLOCATED_ABEND_TIMER ZURÜCKSETZEN
Alle anderen Keine Änderung

Bemerkungen

Als Reaktion auf "Confirm" gibt das Partnerprogramm normalerweise bestätigt , dass die Daten ohne Fehler empfangen wurden. (Wenn beim Partnerprogramm ein Fehler auftritt, gibt es probleme Send_Error oder verwendet Deallocate , um die Unterhaltung ungewöhnlich zu behandeln.)

Das Programm kann nur bestätigen , wenn die Synchronisierungsebene für Unterhaltungen CM_CONFIRM ist.

Bestätigen Sie, dass eine Antwort vom Partnerprogramm abgewartet wird. Eine Antwort wird durch einen der folgenden CPI-C Anrufe im Partnerprogramm generiert:

  • Bestätigt

  • Send_Error

  • 5Deallocate mit dem Unterhaltungs-Deallocate-Typ auf CM_DEALLOCATE_ABEND