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.
Der Deallocate-Aufruf (Funktionsname cmdeal) verwechselt eine Unterhaltung zwischen zwei Programmen.
Syntax
CM_ENTRY Deallocate(
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 erfolgreich ausgeführt wurde; die Unterhaltung wird abgeglichen.
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 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; Die folgenden Statusfehler können auftreten, wenn der Deallocate-Typ eine normale Deallocation angibt (CM_DEALLOCATE_SYNC_LEVEL, CM_DEALLOCATE_FLUSH, CM_DEALLOCATE_CONFIRM):
Die Unterhaltung befindet sich nicht im Status "SENDEN" oder "SEND_PENDING".
Bei einer einfachen Unterhaltung befindet sich die Unterhaltung im SEND-Zustand, aber das Programm hat das Senden eines logischen Datensatzes nicht abgeschlossen.
Die folgenden Rückgabecodes können zurückgegeben werden, wenn die deallocate_type auf CM_DEALLOCATE_CONFIRM oder auf CM_DEALLOCATE_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 Fehlerprotokoll der Produkte protokolliert.CM_CONVERSATION_TYPE_MISMATCH
Primärer Rückgabecode; die logische Partnereinheit (PARTNER Logical Unit, 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; Die in der Zuordnungsanforderung angegebene Benutzer-ID oder das kennwort wurde 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 mit dem Typparameter ausgegeben, der auf CM_DEALLOCATE_ABEND festgelegt ist, oder die Remote-LU hat dies aufgrund eines ungewöhnlichen Zustands des Remoteprogramms getan. 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.
Der Remote-TP wurde normal beendet, hat die Unterhaltung jedoch nicht vor dem Beenden behandelt. Knotendienste in der Remote-LU haben die Unterhaltung im Auftrag des Remote-TP abgeglichen.
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
Abhängig vom Wert des Unterhaltungs-Deallocate-Typparameters (festgelegt durch Set_Deallocate_Type) kann sich die Unterhaltung in einem der in der folgenden Tabelle angegebenen Zustände befinden, wenn das Programm Deallocate ausgibt:
| Deallocate-Typ | Zulässiger Zustand |
|---|---|
| CM_DEALLOCATE_FLUSH | SENDEN oder SEND_PENDING |
| CM_DEALLOCATE_CONFIRM | SENDEN oder SEND_PENDING |
| CM_DEALLOCATE_SYNC_LEVEL | SENDEN oder SEND_PENDING |
| CM_DEALLOCATE_ABEND | Alle außer RESET |
Zustandsänderungen, zusammengefasst in der folgenden Tabelle, basieren auf dem Wert des return_code-Parameters .
| return_code | Neuer Zustand |
|---|---|
| CM_OK | ZURÜCKSETZEN |
| 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
Vor der Zuordnung der Unterhaltung führt dieser Anruf abhängig von der aktuellen Unterhaltungssynchronisierungsebene und dem Typ "Deallocate" entweder das Äquivalent des "Flush" oder " Bestätigten Anrufs" aus. Der Deallocate-Typ wird durch Set_Deallocate_Type festgelegt.
Das Partnerprogramm empfängt die Deallocation-Benachrichtigung über einen der folgenden Parameter:
status_received ist CM_CONFIRM_DEALLOC_RECEIVED
return_code ist CM_DEALLOCATED_NORMAL
return_code ist CM_DEALLOCATED_ABEND
Nachdem dieser Aufruf erfolgreich ausgeführt wurde, ist die conversation_ID nicht mehr gültig.
Wenn für eine einfache Unterhaltung der Typ "Unterhaltungen deallocate" auf CM_DEALLOCATE_ABEND festgelegt ist und die Protokolldatenlänge größer als 0 ist, schreibt die lokale LU die Protokolldaten (angegeben durch Set_Log_Data) in das lokale Fehlerprotokoll und in die Partner-LU.
Nachdem Deallocate ausgeführt wurde, wird die Protokolldatenlänge auf Null festgelegt, und die Protokolldaten werden auf NULL festgelegt.