Set_Deallocate_Type (CPI-C)
Der Set_Deallocate_Type-Aufruf (Funktionsname cmsdt) gibt an, wie die Zuordnung der Konversation aufgehoben werden soll.
Syntax
CM_ENTRY Set_Deallocate_Type(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *deallocate_type,
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.
deallocate_type
Angegebener Parameter. Gibt an, wie die Zuordnung aufgehoben wird. Mögliche Werte:
CM_DEALLOCATE_ABEND
Gibt an, dass die Zuordnung der Unterhaltung anormal und bedingungslos aufgehoben werden soll. Ein Programm sollte CM_DEALLOCATE_ABEND angeben, wenn ein Fehler auftritt, der den erfolgreichen Abschluss einer Transaktion verhindert.
Wenn sich die Konversation im SEND-Zustand befindet, sendet CPI-C den Inhalt des Sendepuffers der lokalen logischen Einheit (LU) an das Partnerprogramm, bevor die Zuordnung aufgehoben wird. Wenn sich die Unterhaltung im EMPFANGSzustand befindet, können eingehende Daten gelöscht werden. Bei einer einfachen Unterhaltung im SEND-Zustand kann eine Abschneidung des logischen Datensatzes auftreten.
CM_DEALLOCATE_CONFIRM
Wird verwendet, um dem Partnerprogramm den Inhalt der lokalen LUs Sendepuffer und eine Anforderung zur Bestätigung der Aufhebung der Zuordnung zu senden.
Diese Anforderung für die Freigabebestätigung wird von Deallocate oder von Send_Data gesendet, wobei der Sendetyp auf CM_SEND_AND_DEALLOCATE festgelegt ist. Die Zuordnung der Unterhaltung wird normal aufgehoben, wenn das Partnerprogramm bestätigt auf die Bestätigungsanforderung antwortet.
CM_DEALLOCATE_FLUSH
Wird verwendet, um den Inhalt der lokalen LUs zu senden, senden Puffer an das Partnerprogramm, bevor die Zuordnung der Unterhaltung normal aufgehoben wird.
CM_DEALLOCATE_SYNC_LEVEL
Verwendet die Synchronisierungsebene für Unterhaltungen, um zu bestimmen, wie die Zuordnung der Unterhaltung aufgehoben werden soll. Eine Standardsynchronisierungsebene wird von Initialize_Conversation festgelegt und kann von Set_Sync_Level überschrieben werden.
Wenn die Synchronisierungsebene der Unterhaltung CM_NONE ist, wird standardmäßig der Inhalt des lokalen LUs-Sendepuffers an das Partnerprogramm gesendet, und die Zuordnung der Unterhaltung wird normal aufgehoben.
Wenn die Synchronisierungsebene der Unterhaltung CM_CONFIRM ist, werden der Inhalt der lokalen LUs zum Senden des Puffers und eine Anforderung zur Bestätigung der Aufhebung der Zuordnung an das Partnerprogramm gesendet. Diese Anforderung für die Freigabebestätigung wird von Deallocate oder von Send_Data gesendet, wobei der Sendetyp auf CM_SEND_AND_DEALLOCATE festgelegt ist. Die Zuordnung der Unterhaltung wird normal aufgehoben, wenn das Partnerprogramm den bestätigten Anruf ausgibt und auf die Bestätigungsanforderung antwortet.
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_PROGRAM_PARAMETER_CHECK
Primärer Rückgabecode; eine der folgenden Ereignisse:
Der durch conversation_ID oder deallocate_type angegebene Wert ist ungültig.
Der parameter deallocate_type gibt CM_DEALLOCATE_CONFIRM an, aber die Synchronisierungsebene für Unterhaltungen ist auf CM_NONE festgelegt.
Die Adresse einer Variablen ist ungültig.
CM_PRODUCT_SPECIFIC_ERROR
Primärer Rückgabecode; Ein produktspezifischer Fehler ist aufgetreten und wurde im Produktfehlerprotokoll protokolliert.
Zustandsänderungen
Die Unterhaltung kann sich in einem beliebigen Zustand mit Ausnahme von RESET befinden.
Es gibt keine Zustandsänderung.
Hinweise
Dieser Aufruf überschreibt den standardmäßigen Zuordnungstyp, der von Initialize_Conversation oder Accept_Conversation eingerichtet wurde. Der Standardtyp aufheben der Zuordnung ist CM_DEALLOCATE_SYNC_LEVEL.
Die in diesem Aufruf angegebenen Zuordnungsanweisungen werden wirksam, wenn Deallocate ausgegeben wird oder wenn der Sendetyp auf CM_SEND_AND_DEALLOCATE festgelegt ist und Send_Data ausgegeben wird.
Sie können deallocate_type auf CM_FLUSH festlegen, wenn die Synchronisierungsebene der Unterhaltung auf CM_NONE oder CM_CONFIRM festgelegt ist.
Der Wert CM_DEALLOCATE_FLUSH ist funktional identisch mit CM_DEALLOCATE_SYNC_LEVEL, wobei die Synchronisierungsebene für Unterhaltungen auf CM_NONE festgelegt ist.
Der Wert CM_DEALLOCATE_CONFIRM ist funktional identisch mit CM_DEALLOCATE_SYNC_LEVEL, wobei die Synchronisierungsebene für Unterhaltungen auf CM_CONFIRM festgelegt ist.