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 Send_Data Aufruf (Funktionsname cmsend) fügt Daten in den Sendepuffer der lokalen logischen Einheit (LU) für die Übertragung an das Partnerprogramm ein.
Syntax
CM_ENTRY Send_Data(
unsigned char FAR *conversation_ID,
unsigned char FAR *buffer,
CM_INT32 FAR *send_length,
CM_INT32 FAR *request_to_send_received,
CM_INT32 FAR *return_code
);
Die 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.
Puffer
Angegebener Parameter. Gibt die Adresse des Puffers an, der die Daten enthält, die im lokalen LUs-Sendepuffer abgelegt werden sollen.
send_length
Angegebener Parameter. Gibt die Anzahl der Bytes an, die in den lokalen LUs-Sendepuffer eingefügt werden sollen. Der Bereich liegt zwischen 0 und 32767.
Wenn für eine zugeordnete Unterhaltung send_length auf Null festgelegt ist, wird ein NULL-Datensatz an das Partnerprogramm gesendet.
Wenn für eine einfache Unterhaltung send_length auf Null festgelegt ist, werden keine Daten gesendet. Der Pufferparameter ist nicht relevant. Die anderen Parameter werden jedoch verarbeitet.
request_to_send_received
Zurückgegebener Parameter. Dies ist der Anforderungs-zu-Senden-Empfangen-Indikator. Mögliche Werte:
CM_REQ_TO_SEND_RECEIVED
Das Partnerprogramm hat den Request_To_Send Anruf ausgegeben, der das lokale Programm anfordert, die Unterhaltung in den STATUS EMPFANGEN zu ändern.
CM_REQ_TO_SEND_NOT_RECEIVED
Das Partnerprogramm hat den Request_To_Send Anruf nicht ausstellen können. 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.
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; einer der folgenden Ereignisse:
Der durch conversation_ID angegebene Wert ist ungültig.
Der durch send_length angegebene Wert liegt außerhalb des Bereichs (größer als 32767).
Dies ist eine einfache Unterhaltung, und die ersten beiden Bytes des Puffers enthalten eine ungültige Länge eines logischen Datensatzes (0x0000, 0x0001, 0x8000 oder 0x8001).
CM_PROGRAM_STATE_CHECK
Primärer Rückgabecode; einer der folgenden Ereignisse:Der Unterhaltungsstatus ist nicht SENDEN oder SEND_PENDING.
Die grundlegende Unterhaltung befindet sich im SEND-Zustand, und send_type ist auf CM_SEND_AND_CONFIRM, CM_SEND_AND_DEALLOCATE oder CM_SEND_AND_PREP_TO_RECEIVE festgelegt. Die Daten enden jedoch nicht auf einer logischen Datensatzgrenze. Diese Bedingung ist nur zulässig, wenn deallocate_type auf CM_DEALLOCATE_ABEND festgelegt ist und die send_type auf CM_SEND_AND_DEALLOCATE 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 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; 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
Die Unterhaltung muss sich im Status "SENDEN" oder "SEND_PENDING" befinden, wenn das Programm diesen Aufruf ausgibt.
In der folgenden Tabelle sind Zustandsänderungen zusammengefasst, die möglich sind, wenn return_code auf CM_OK festgelegt ist.
| send_type | Alter Zustand | Neuer Zustand |
|---|---|---|
| CM_BUFFER_DATA | SENDEN | Keine Änderung |
| CM_BUFFER_DATA | SEND_PENDING | SENDEN |
| CM_SEND_AND_FLUSH | SENDEN | Keine Änderung |
| CM_SEND_AND_FLUSH | SEND_PENDING | SENDEN |
| CM_SEND_AND_CONFIRM | SENDEN | Keine Änderung |
| CM_SEND_AND_CONFIRM | SEND_PENDING | SENDEN |
| CM_SEND_AND_PREP_TO_ EMPFANGEN | Nicht verfügbar | EMPFANGEN |
| CM_SEND_AND_DEALLOCATE | Nicht verfügbar | ZURÜCKSETZEN |
Bei einem return_code Wert von CM_PROGRAM_ERROR_PURGING oder CM_SVC_ERROR_PURGING ändert sich die Unterhaltung in den STATUS EMPFANGEN. Bei anderen Werten, die nicht CM_OK sind, ändert sich die Unterhaltung in den ZUSTAND ZURÜCKSETZEN.
Bemerkungen
Die im lokalen LUs-Sendepuffer gesammelten Daten werden an das Partner-LU- und Partnerprogramm übertragen, wenn eine der folgenden Aktionen auftritt:
Der Sendepuffer wird ausgefüllt.
Das lokale Programm gibt einen Flush-, Confirm- oder Deallocate-Aufruf oder einen anderen Aufruf aus, der den LUs-Sendepuffer löscht. (Einige Sendetypen, die durch Set_Send_Type festgelegt werden, umfassen die Funktion zum Leeren.)
Die zu sendenden Daten können eine der folgenden sein:
Ein vollständiger Datensatz für eine zugeordnete Unterhaltung. Ein vollständiger Datensatz ist eine Zeichenfolge der länge, die vom send_length-Parameter angegeben wird.
Ein vollständiger logischer Datensatz oder Teil davon in einer einfachen Unterhaltung. Ein vollständiger logischer Datensatz wird durch den LL-Wert bestimmt. (Ein logischer Datensatz kann enden und eine neue beginnen in der Mitte der zu sendenden Datenzeichenfolge.)
Die LU führt keine Konvertierung zwischen ASCII und EBCDIC für die zu sendende Datenzeichenfolge automatisch durch. Bei Bedarf kann das Programm das Common Service Verb (CSV) CONVERT verwenden, um eine Zeichenfolge aus einem Zeichensatz in den anderen zu übersetzen.