Mit dem Aufruf Send_Mapped_Data (CMSNDM) sendet ein Programm Daten und ein Formatkennzeichen an einen UTM-Vorgang. Jedesmal nachdem ein Programm das Senderecht erhalten hat, muss es einen Send_Data- oder Send_Mapped_Data-Aufruf absetzen. Dies ist der Fall
unmittelbar nach einem erfolgreichen Allocate-Aufruf oder
wenn nach dem Receive- bzw. Receive_Mapped_Data-Aufruf die Characteristic status_received den Wert CM_SEND_RECEIVED hat (d.h. wenn das Programm das Senderecht empfangen hat).
CMSNDM (conversation_ID, map_name, map_name_length, buffer, send_length, control_information_received, return_code)
Parameter
--> conversation_ID | Identifikation der Conversation |
--> map_name | Formatkennzeichen, das an die UTM-Anwendung gesendet wird. Das Formatkennzeichen spezifiziert die Strukturierungsmerkmale für den Empfänger der Daten. |
--> map_name_length | Länge des Formatkennzeichens in Byte. |
--> buffer | Adresse des Puffers mit den zu sendenden Daten. Die Länge der Daten wird im Parameter send_length angegeben. |
--> send_length | Länge der zu sendenden Daten in Byte. Minimum: 0, Maximum: 32767 Ein Send_Mapped_Data-Aufruf mit der Länge 0 bewirkt, dass eine Nachricht der Länge Null gesendet wird. |
<-- control_information_received | Wird nur syntaktisch unterstützt und kann nur den Wert CM_REQ_TO_SEND_NOT_RECEIVED annehmen. Der Wert in control_information_received ist undefiniert, wenn das Ergebnis in return_code ungleich CM_OK ist. |
<-- return_code | Ergebnis des Funktionsaufrufs |
Ergebnis ( return_code )
CM_OK
Aufruf ok
CM_TPN_NOT_RECOGNIZED
Dieser Returncode kann nur beim ersten Send_Mapped_Data-Aufruf nach einem Allocate-Aufruf auftreten. Nach dem Einrichten der Conversation ist ein Fehler aufgetreten, der zur Beendigung der Conversation führte.
CM_DEALLOCATED_ABEND
mögliche Ursachen:
UTM-Anwendungsende
Verbindungsabbau durch UTM-Administration
Verbindungsabbau durch das Transportsystem
CM_RESOURCE_FAILURE_RETRY
Ein vorübergehender Betriebsmittelengpass führte zur Beendigung der Conversation. Möglicherweise können im UTM-Pagepool keine Daten mehr zwischengespeichert werden. Tritt der Fehler häufiger auf, sollte der Pagepool der UTM-Anwendung vergrößert werden (MAX-Anweisung, PGPOOL=).
CM_PROGRAM_STATE_CHECK
Der Aufruf ist im aktuellen Zustand nicht erlaubt.
CM_PROGRAM_PARAMETER_CHECK
Der Wert in conversation_ID ist ungültig oder der Wert in send_length ist größer als 32767 oder kleiner als Null.
CM_MAP_ROUTINE_ERROR
mögliche Ursache:
Die Länge des Formatkennzeichens ist kleiner 0 oder größer 8.
Zustandsänderung
Falls das Ergebnis CM_OK ist, bleibt das Programm im Zustand "Send".
Bei folgenden Ergebnissen geht das Programm in den Zustand "Reset" über:
CM_TPN_NOT_RECOGNIZED
CM_DEALLOCATED_ABEND
CM_RESOURCE_FAILURE_RETRY/NO_RETRY
Bei allen anderen Ergebnissen ändert das Programm seinen Zustand nicht.
Hinweis
Die Daten werden immer transparent übertragen. Die gesendeten Daten werden dem Partner-UTM-Vorgang beim MGET-Aufruf angezeigt.
Das Formatkennzeichen in map_name wird dem UTM-Vorgang im Feld KCMF/kcfn beim MGET-Aufruf übergeben.Aus Performancegründen puffert UPIC die zu sendenden Daten und schickt sie erst zu einem späteren Zeitpunkt (mit einem Folgeaufruf) an die UTM-Anwendung. Aus diesem Grund kann es passieren, dass eine Beendigung der UTM-Anwendung nicht unmittelbar, sondern erst bei einem Folgeaufruf als Ergebnis geliefert wird.
Sobald der Wert von map_name an openUTM gesendet wird, wird map_name zurückgesetzt.
Verhalten im Fehlerfall
CM_RESOURCE_FAILURE_RETRY
Conversation neu einrichten.
CM_PROGRAM_STATE_CHECK
Programm ändern.
CM_PROGRAM_PARAMETER_CHECK
Programm ändern.
CM_ENTRY Send_Mapped_Data(unsigned char CM_PTR conversation_ID, unsigned char CM_PTR map_name, CM_INT32 CM_PTR map_name_length, unsigned_char CM_PTR buffer, CM_INT32 CM_PTR send_length, CM_CONTROL_INFORMATION_RECEIVED CM_PTR control_information_received, CM_RETURN_CODE CM_PTR return_code )