MC_SEND_DATA
Das MC_SEND_DATA Verb platziert Daten im Sendepuffer der lokalen logischen Einheit (LU) für die Übertragung an das Partnertransaktionsprogramm (TP).
Die folgende Struktur beschreibt den Verb-Kontrollblock (VCB), der vom MC_SEND_DATA-Verb verwendet wird.
Syntax
struct mc_send_data {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char tp_id[8];
unsigned long conv_id;
unsigned char rts_rcvd;
unsigned char data_type;
unsigned short int dlen;
unsigned char FAR * dptr ;
unsigned char type;
unsigned char reserv4;
};
Member
opcode
Angegebener Parameter. Gibt den Code des Verbvorgangs an, AP_M_SEND_DATA.
opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung an, AP_MAPPED_CONVERSATION.
reserv2
Ein reserviertes Feld.
primary_rc
Zurückgegebener Parameter. Gibt den primären Rückgabecode an, der von APPC nach Abschluss des Verbs festgelegt wird. Die gültigen Rückgabecodes variieren je nach ausgegebenem APPC-Verb. Gültige Fehlercodes für dieses Verb finden Sie unter „Rückgabecodes“.
secondary_rc
Zurückgegebener Parameter. Gibt den sekundären Rückgabecode an, der von APPC nach Abschluss des Verbs festgelegt wird. Die gültigen Rückgabecodes variieren je nach ausgegebenem APPC-Verb. Gültige Fehlercodes für dieses Verb finden Sie unter „Rückgabecodes“.
tp_id
Angegebener Parameter. Identifiziert den lokalen TP.
Der Wert dieses Parameters wird von TP_STARTED im aufrufenden TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.
conv_id
Angegebener Parameter. Stellt den Unterhaltungsbezeichner bereit.
Der Wert dieses Parameters wird von MC_ALLOCATE im aufrufenden TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.
rts_rcvd
Zurückgegebener Parameter. Stellt den Request-to-Send-Received-Indikator bereit.
AP_YES gibt an, dass der Partner-TP MC_REQUEST_TO_SEND ausgestellt hat, der anfordert, dass der lokale TP die Unterhaltung in DEN RECEIVE-Zustand ändert. Um in den RECEIVE-Zustand zu wechseln, kann der lokale TP MC_PREPARE_TO_RECEIVE, MC_RECEIVE_AND_WAIT oder MC_RECEIVE_AND_POST verwenden.
AP_NO gibt an, dass der Partner-TP keine MC_REQUEST_TO_SEND ausgestellt hat.
data_type
Angegebener Parameter. Gibt den Typ der zu sendenden Daten an, wenn der Synchronisierungspunkt unterstützt wird. Gültige Parameter sind:AP_APPLICATION
AP_USER_CONTROL_DATA
AP_PS_HEADER
dlen
Angegebener Parameter. Gibt die Anzahl der Datenbytes an, die in den Sendepuffer der lokalen LU eingefügt werden sollen. Der Bereich reicht von 0 bis 65535.dptr
Angegebener Parameter. Gibt die Adresse des Puffers an, der die Daten enthält, die in den Sendepuffer der lokalen LU eingefügt werden sollen.Für das Windows-Betriebssystem kann sich der Datenpuffer in einem statischen Datenbereich oder in einem global zugeordneten Bereich befinden. Der Datenpuffer muss vollständig in diesen Bereich passen.
type
Angegebener Parameter. Ermöglicht es einem TP, Daten zu senden und andere Funktionen innerhalb eines API-Aufrufs auszuführen. Sie können z. B. MC_SEND_DATA mit dem auf CONFIRM festgelegten Typ kombinieren, um dasselbe Ziel wie die Ausgabe MC_SEND_DATA gefolgt von MC_CONFIRM zu erreichen.AP_SEND_DATA_CONFIRM entspricht MC_SEND_DATA gefolgt von MC_CONFIRM.
AP_SEND_DATA_FLUSH entspricht MC_SEND_DATA gefolgt von MC_FLUSH.
AP_SEND_DATA_DEALLOC_ABEND entspricht MC_SEND_DATA gefolgt von MC_DEALLOCATE mit einer dealloc_type von AP_ABEND.
AP_SEND_DATA_DEALLOC_FLUSH entspricht MC_SEND_DATA gefolgt von MC_DEALLOCATE mit einem dealloc_type von AP_FLUSH.
AP_SEND_DATA_DEALLOC_SYNC_LEVEL entspricht MC_SEND_DATA gefolgt von MC_DEALLOCATE mit einer dealloc_type von AP_SYNC_LEVEL.
AP_SEND_DATA_P_TO_R_FLUSH entspricht MC_SEND_DATA gefolgt von MC_PREPARE_TO_RECEIVE mit einer ptr_type von AP_FLUSH.
AP_SEND_DATA_P_TO_R_SYNC_LEVEL entspricht MC_SEND_DATA gefolgt von MC_PREPARE_TO_RECEIVE mit einer ptr_type von AP_SYNC_LEVEL und Sperren , die auf AP_SHORT festgelegt sind.
Rückgabecodes
AP_OK
Primärer Rückgabecode; das Verb wurde erfolgreich ausgeführt.
AP_PARAMETER_CHECK
Primärer Rückgabecode; das Verb wurde aufgrund eines Parameterfehlers nicht ausgeführt.
AP_BAD_CONV_ID
Sekundärer Rückgabecode; der Wert von conv_id nicht mit einem von APPC zugewiesenen Unterhaltungsbezeichner übereinstimmt.
AP_BAD_TP_ID
Sekundärer Rückgabecode; der Wert von tp_id nicht mit einem TP-Bezeichner übereinstimmt, der von APPC zugewiesen wurde.
AP_INVALID_DATA_SEGMENT
Sekundärer Rückgabecode; Die für den Datenpuffer angegebene Länge war länger als das Segment, das dem Puffer zugeordnet wurde.
AP_SEND_DATA_INVALID_TYPE
Sekundärer Rückgabecode; der angegebene Typ wurde von APPC nicht erkannt.
AP_SEND_DATA_CONFIRM_SYNC_NONE
Sekundärer Rückgabecode; Der Typ CONFIRM ist für eine Unterhaltung, die mit der sync_level NONE zugeordnet wurde, nicht zulässig.
AP_STATE_CHECK
Primärer Rückgabecode; das Verb wurde nicht ausgeführt, da es in einem ungültigen Zustand ausgegeben wurde.
AP_SEND_DATA_NOT_SEND_STATE
Sekundärer Rückgabecode; Der lokale TP hat MC_SEND_DATA ausgegeben, aber die Unterhaltung befand sich nicht im SEND-Zustand.
AP_ALLOCATION_ERROR
Primärer Rückgabecode; APPC konnte eine Unterhaltung nicht zuordnen. Der Unterhaltungszustand ist auf ZURÜCKSETZEN festgelegt.
Dieser Code kann über ein Verb zurückgegeben werden, das nach MC_ALLOCATE ausgegeben wurde.
AP_ALLOCATION_FAILURE_NO_RETRY
Sekundärer Rückgabecode; die Konversation kann aufgrund einer dauerhaften Bedingung nicht zugeordnet werden, z. B. aufgrund eines Konfigurationsfehlers oder eines Sitzungsprotokollfehlers. Um den Fehler zu ermitteln, sollte der Systemadministrator sollte das Fehlerprotokoll untersuchen. Wiederholen Sie die Zuordnung erst, wenn der Fehler behoben wurde.
AP_ALLOCATION_FAILURE_RETRY
Sekundärer Rückgabecode; die Konversation konnte aufgrund einer temporären Bedingung, z. B. eines Linkfehlers, nicht zugeordnet werden. Der Grund für den Fehler wird im Systemfehlerprotokoll protokolliert. Wiederholen Sie die Zuordnung.
AP_CONVERSATION_TYPE_MISMATCH
Sekundärer Rückgabecode; die Partner-LU oder tp unterstützt nicht den in der Zuordnungsanforderung angegebenen Konversationstyp (basic oder mapped).
AP_PIP_NOT_ALLOWED
Sekundärer Rückgabecode; In der Zuordnungsanforderung wurden PIP-Daten angegeben, aber entweder erfordert das Partner-TP diese Daten nicht, oder die Partner-LU unterstützt sie nicht.
AP_PIP_NOT_SPECIFIED_CORRECTLY
Sekundärer Rückgabecode; Der Partner-TP erfordert PIP-Daten, aber die Zuordnungsanforderung hat entweder keine PIP-Daten oder eine falsche Anzahl von Parametern angegeben.
AP_SECURITY_NOT_VALID
Sekundärer Rückgabecode; Die in der Zuordnungsanforderung angegebene Benutzer-ID oder das Kennwort wurde von der Partner-LU nicht akzeptiert.
AP_SYNC_LEVEL_NOT_SUPPORTED
Sekundärer Rückgabecode; der Partner-TP unterstützt die in der Zuordnungsanforderung angegebene sync_level (AP_NONE oder AP_CONFIRM_SYNC_LEVEL) nicht, oder die sync_level wurde nicht erkannt.
AP_TP_NAME_NOT_RECOGNIZED
Sekundärer Rückgabecode; Die Partner-LU erkennt den in der Zuordnungsanforderung angegebenen TP-Namen nicht.
AP_TRANS_PGM_NOT_AVAIL_NO_RETRY
Sekundärer Rückgabecode; Die Remote-LU hat die Zuordnungsanforderung abgelehnt, da sie den angeforderten Partner-TP nicht starten konnte. Die Bedingung ist permanent. Der Grund für den Fehler wird möglicherweise auf dem Remoteknoten protokolliert. Wiederholen Sie die Zuordnung erst, wenn der Fehler behoben wurde.
AP_TRANS_PGM_NOT_AVAIL_RETRY
Sekundärer Rückgabecode; Die Remote-LU hat die Zuordnungsanforderung abgelehnt, da sie den angeforderten Partner-TP nicht starten konnte. Die Bedingung kann temporär sein, z. B. ein Timeout. Der Grund für den Fehler wird möglicherweise auf dem Remoteknoten protokolliert. Wiederholen Sie die Zuordnung.
AP_COMM_SUBSYSTEM_ABENDED
Primärer Rückgabecode; weist darauf hin, dass eine der folgenden Bedingungen aufgetreten ist:
Der von dieser Konversation verwendete Knoten hat einen ABEND gefunden.
Die Verbindung zwischen dem TP und dem PU 2.1-Knoten wurde unterbrochen (LAN-Fehler).
SnaBase auf dem Computer des TP hat einen ABEND gefunden.
Der Systemadministrator sollte das Fehlerprotokoll untersuchen, um den Grund für den ABEND zu ermitteln.
AP_COMM_SUBSYSTEM_NOT_LOADED
Primärer Rückgabecode; Eine erforderliche Komponente konnte nicht geladen werden oder wurde während der Verarbeitung des Verbs beendet. Folglich konnte die Kommunikation nicht stattfinden. Wenden Sie sich an den Systemadministrator, um Korrekturmaßnahmen zu ergreifen.Wenn dieser Rückgabecode mit MC_ALLOCATE verwendet wird, kann dies darauf hindeuten, dass kein Kommunikationssystem gefunden werden konnte, das die lokale LU unterstützt. (Beispielsweise ist der mit TP_STARTED angegebene lokale LU-Alias falsch oder wurde nicht konfiguriert.) Wenn lu_alias oder mode_name weniger als acht Zeichen umfasst, müssen Sie sicherstellen, dass diese Felder rechts mit Leerzeichen gefüllt sind. Dieser Fehler wird zurückgegeben, wenn diese Parameter nicht mit Leerzeichen gefüllt sind, da kein Knoten verfügbar ist, der die MC_ALLOCATE Anforderung erfüllen kann.
Wenn MC_ALLOCATE diesen Rückgabecode für ein Mit mehreren Knoten konfiguriertes Microsoft Host Integration Server-Clientsystem erzeugt, gibt es wie folgt zwei sekundäre Rückgabecodes:
0xF0000001
Sekundärer Rückgabecode; Es wurden keine Knoten gestartet.
0xF0000002
Sekundärer Rückgabecode; Mindestens ein Knoten wurde gestartet, aber die lokale LU (wenn TP_STARTED ausgestellt wird) ist auf keinem aktiven Knoten konfiguriert. Das Problem kann eines der folgenden Sein:
Der Knoten mit der lokalen LU wird nicht gestartet.
Die lokale LU ist nicht konfiguriert.
AP_CONV_FAILURE_NO_RETRY
Primärer Rückgabecode; Die Konversation wurde aufgrund einer permanenten Bedingung beendet, z. B. aufgrund eines Sitzungsprotokollfehlers. Der Systemadministrator sollte das Systemfehlerprotokoll untersuchen, um die Ursache des Fehlers zu ermitteln. Wiederholen Sie die Konversation erst, wenn der Fehler behoben wurde.AP_CONV_FAILURE_RETRY
Primärer Rückgabecode; Die Unterhaltung wurde aufgrund eines temporären Fehlers beendet. Starten Sie den TP neu, um festzustellen, ob das Problem erneut auftritt. Wenn dies der Fall ist, sollte der Systemadministrator das Fehlerprotokoll untersuchen, um die Ursache des Fehlers zu ermitteln.AP_CONVERSATION_TYPE_MIXED
Primärer Rückgabecode; der TP hat sowohl grundlegende als auch zugeordnete Konversationsverben ausgegeben. In einer einzelnen Unterhaltung kann nur ein Typ ausgegeben werden.AP_INVALID_VERB_SEGMENT
Primärer Rückgabecode; der VCB wurde über das Ende des Datensegments hinaus erweitert.AP_PROG_ERROR_PURGING
Primärer Rückgabecode; Im Status RECEIVE, PENDING, PENDING_POST, CONFIRM, CONFIRM_SEND oder CONFIRM_DEALLOCATE hat der Partner tp MC_SEND_ERROR ausgestellt. Gesendete, aber noch nicht empfangene Daten werden gelöscht.AP_STACK_TOO_SMALL
Primärer Rückgabecode; die Stapelgröße der Anwendung ist zu klein, um das Verb auszuführen. Vergrößern Sie die Stapelgröße Ihrer Anwendung.AP_CONV_BUSY
Primärer Rückgabecode; es kann jeweils nur ein ausstehendes Konversationsverb gleichzeitig geben. Dies kann auftreten, wenn das lokale TP über mehrere Threads verfügt und mehr als ein Thread APPC-Aufrufe mit demselben conv_id ausgibt.AP_THREAD_BLOCKING
Primärer Rückgabecode; der aufrufende Thread befindet sich bereits in einem blockierenden Aufruf.AP_UNEXPECTED_DOS_ERROR
Primärer Rückgabecode; das Betriebssystem hat bei der Verarbeitung eines APPC-Aufrufs vom lokalen TP einen Fehler an APPC zurückgegeben. Der Rückgabecode des Betriebssystems wurde über secondary_rc zurückgegeben. Er wird in Intel-Bytetauschreihenfolge angezeigt. Wenn das Problem weiterhin besteht, wenden Sie sich an Ihren Systemadministrator.AP_DEALLOC_ABEND
Primärer Rückgabecode; Die Zuordnung der Unterhaltung wurde aus einem der folgenden Gründe aufgehoben:Das partner TP, das MC_DEALLOCATE ausgestellt hat, wobei dealloc_type auf AP_ABEND festgelegt ist.
Der Partner-TP ist auf ein ABEND-Ereignis gestoßen, sodass die Partner-LU eine MC_DEALLOCATE-Anforderung sendet.
Hinweise
Die Unterhaltung muss sich im SEND-Zustand befinden, wenn das TP dieses Verb ausgibt. Zustandsänderungen basierend auf primary_rc werden in der folgenden Tabelle zusammengefasst.
primary_rc | Neuer Zustand |
---|---|
AP_OK | Keine Änderung |
AP_ALLOCATION_ERROR | RESET |
AP_CONV_FAILURE_RETRY | RESET |
AP_CONV_FAILURE_NO_RETRY | RESET |
AP_DEALLOC_ABEND | RESET |
AP_DEALLOC_ABEND_PROG | RESET |
AP_DEALLOC_ABEND_SVC | RESET |
AP_DEALLOC_ABEND_TIMER | RESET |
AP_PROG_ERROR_PURGING | RECEIVE |
AP_SVC_ERROR_PURGING | RECEIVE |
MC_SEND_DATA warten möglicherweise unbegrenzt, da das Partner-TP kein Empfangsverb ausgestellt hat. In diesem Fall kann sich der Sendepuffer füllen.
Die im Sendepuffer der lokalen LU gesammelten Daten werden an die Partner-LU (und partner TP) übertragen, wenn eine der folgenden Aktionen auftritt:
Der Sendepuffer füllt sich.
Der lokale TP gibt MC_FLUSH, MC_CONFIRM oder MC_DEALLOCATE (oder ein anderes Verb aus, das den Sendepuffer der LU leert).