Freigeben über


RUI_BID

Das RUI_BID Verb benachrichtigt die RuI-Anwendung (Request Unit Interface), dass eine Nachricht mit RUI_READ gelesen werden soll.

Die folgende Struktur beschreibt das LUA_COMMON Element des verb control blocks (VCB), das von RUI_BID verwendet wird:

Die zweite Syntaxunion beschreibt das LUA_SPECIFIC Element des Verb-Steuerelementblocks (VCB), das von RUI_BID verwendet wird. Andere Gewerkschaftsmitglieder werden aus Gründen der Klarheit weggelassen:

Syntax

  
struct LUA_COMMON {  
    unsigned short lua_verb;  
    unsigned short lua_verb_length;  
    unsigned short lua_prim_rc;  
    unsigned long  lua_sec_rc;  
    unsigned short lua_opcode;  
    unsigned long  lua_correlator;  
    unsigned char  lua_luname[8];  
    unsigned short lua_extension_list_offset;  
    unsigned short lua_cobol_offset;  
    unsigned long  lua_sid;  
    unsigned short lua_max_length;  
    unsigned short lua_data_length;  
    char FAR *     lua_data_ptr;  
    unsigned long  lua_post_handle;  
    struct LUA_TH  lua_th;  
    struct LUA_RH  lua_rh;  
    struct LUA_FLAG1 lua_flag1;  
    unsigned char  lua_message_type;  
    struct LUA_FLAG2 lua_flag2;   
    unsigned char  lua_resv56[7];  
    unsigned char  lua_encr_decr_option;  
};  
union LUA_SPECIFIC {  
    unsigned char lua_peek_data[12];  
};  

Elemente

lua_verb
Angegebener Parameter. Enthält den Verbcode, LUA_VERB_RUI für RUI-Verben.

lua_verb_length
Angegebener Parameter. Gibt die Länge in Byte der VCB (Logical Unit Application, LUA) an. Er muss die Länge des Verbdatensatzes enthalten, der ausgegeben wird.

lua_prim_rc
Primärer Rückgabecode, der von LUA nach Abschluss des Verbs festgelegt wurde. Die gültigen Rückgabecodes variieren je nach ausgestellten LUA-Verb.

lua_sec_rc
Sekundärer Rückgabecode, der von LUA beim Abschluss des Verbs festgelegt wurde. Die gültigen Rückgabecodes variieren je nach ausgestellten LUA-Verb.

lua_opcode
Angegebener Parameter. Enthält den LUA-Befehlscode (Verboperationscode) für das zu ausgestellte Verb LUA_OPCODE_RUI_BID.

lua_correlator
Angegebener Parameter. Enthält einen vom Benutzer bereitgestellten Wert, der das Verb mit anderen vom Benutzer bereitgestellten Informationen verknüpft. LUA verwendet oder ändert diese Informationen nicht. Dieser Parameter ist optional.

lua_luname
Angegebener Parameter. Gibt den ASCII-Namen der lokalen LU an, die von der Windows LUA-Sitzung verwendet wird.

RUI_BID erfordert diesen Parameter nur, wenn lua_sid null ist.

Dieser Parameter ist acht Bytes lang, rechts mit Leerzeichen (0x20) aufgefüllt, wenn der Name kürzer als acht Zeichen ist.

lua_extension_list_offset
Wird von RUI in Microsoft® Host Integration Server nicht verwendet und sollte auf Null festgelegt werden.

lua_cobol_offset
Wird nicht von LUA im Hostintegrationsserver verwendet und sollte null sein.

lua_sid
Angegebener Parameter. Gibt den Sitzungsbezeichner an und wird von SLI_OPEN und RUI_INIT zurückgegeben. Andere Verben verwenden diesen Parameter, um die für den Befehl verwendete Sitzung zu identifizieren. Wenn andere Verben den parameter lua_luname verwenden, um Sitzungen zu identifizieren, legen Sie den lua_sid Parameter auf Null fest.

lua_max_length
Wird von RUI_BID nicht verwendet und sollte auf Null festgelegt werden.

lua_data_length
Zurückgegebener Parameter. Gibt die Länge der in lua_peek_data zurückgegebenen Daten für RUI_BID an.

lua_data_ptr
Dieser Parameter wird nicht verwendet und sollte auf Null festgelegt werden.

lua_post_handle
Angegebener Parameter. Wird unter Microsoft Windows Server verwendet, wenn eine asynchrone Benachrichtigung durch Ereignisse durchgeführt werden soll. Diese Variable enthält das Handle des Ereignisses, das signalisiert werden soll, oder ein Fensterhandle.

lua_th
Zurückgegebener Parameter. Enthält den SNA-Übertragungsheader (TH) der empfangenen Nachricht. Verschiedene Unterparameter werden für Schreibfunktionen festgelegt und für Lese- und Gebotsfunktionen zurückgegeben. Die Unterparameter sind wie folgt:

lua_th.flags_fid

Formatidentifikationstyp 2, vier Bit.

lua_th.flags_mpf

Segmentierungszuordnungsfeld, zwei Bit. Definiert den Typ des Datensegments. Folgende Werte sind gültig:

0x00 Mittleres Segment0x04 Letzten Segment0x08 Ersten Segment0x0C Nur-Segment

lua_th.flags_odai

Absenderadressenfeld-Zieladressfeld (OAF–DAF)-Zuweisungsindikator, ein Bit.

lua_th.flags_efi

Beschleunigter Flussindikator, ein Bit.

lua_th.daf

Zieladressfeld (DAF), ein nicht signiertes Zeichen.

lua_th.oaf

Ursprungsadressfeld (OAF), ein nicht signiertes Zeichen.

lua_th.snf

Sequenznummerfeld, ein nicht signiertes Zeichen[2].

lua_rh
Zurückgegebener Parameter. Enthält den SNA-Anforderungs-/Antwortheader (RH) der gesendeten oder empfangenen Nachricht. Sie wird für die Schreibfunktion festgelegt und von den Lese- und Gebotsfunktionen zurückgegeben. Die Unterparameter sind wie folgt:

lua_rh.rri

Anforderungsantwortindikator, ein Bit.

lua_rh.ruc

RU-Kategorie, zwei Bits. Folgende Werte sind gültig:

LUA_RH_FMD (0x00) FM-DatensegmentLUA_RH_NC (0x20)LUA_RH_DFC (0x40)Datenflusssteuerung LUA_RH_SC (0x60) Sitzungssteuerelement

lua_rh.fi

Formatanzeige, ein Bit.

lua_rh.sdi

Sense data included indicator, one bit.

lua_rh.bci

Begin chain indicator, one bit.

lua_rh.eci

Endchainindikator, ein Bit.

lua_rh.dr1i

Eindeutige Antwort 1 Indikator, ein Bit.

lua_rh.dr2i

Eindeutige Antwort 2 Indikator, ein Bit.

lua_rh.ri

Ausnahmeantwortindikator (für eine Anforderung) oder Antworttypindikator (für eine Antwort), ein Bit.

lua_rh.qri

Warteschleifen-Antwortindikator, ein Bit.

lua_rh.pi

Pacing-Indikator, ein Bit.

lua_rh.bbi

Beginnen Sie die Klammernanzeige, ein Bit.

lua_rh.ebi

Endklammernindikator, ein Bit.

lua_rh.cdi

Änderungsrichtungsanzeige, ein Bit.

lua_rh.csi

Codeauswahlindikator, ein Bit.

lua_rh.edi

Enzipherierte Datenanzeige, ein Bit.

lua_rh.pdi

Abstands-Datenindikator, ein Bit.

lua_flag1
Angegebener Parameter. Enthält eine Datenstruktur, die Flags für nachrichten enthält, die von der Anwendung bereitgestellt werden. Die Unterparameter sind wie folgt:

lua_flag1.bid_enable

Bid enable indicator, one bit.

lua_flag1.close_abend

Schließen Sie die Direktanzeige, ein Bit.

lua_flag1.nowait

Keine Wartezeit für datenkennzeichnung, ein Bit.

lua_flag1.sscp_exp

SSCP beschleunigter Fluss, ein Bit.

lua_flag1.sscp_norm

SSCP normaler Fluss, ein Bit.

lua_flag1.lu_exp

LU beschleunigter Fluss, ein Bit.

lua_flag1.lu_norm

LU normaler Fluss, ein Bit.

lua_message_type
Zurückgegebener Parameter. Gibt den Typ der SNA-Nachricht an, die für RUI_BID angegeben ist. Mögliche Werte:

LUA_MESSAGE_TYPE_LU_DATA

LUA_MESSAGE_TYPE_SSCP_DATA

LUA_MESSAGE_TYPE_BID

LUA_MESSAGE_TYPE_BIND

LUA_MESSAGE_TYPE_BIS

LUA_MESSAGE_TYPE_CANCEL

LUA_MESSAGE_TYPE_CHASE

LUA_MESSAGE_TYPE_CLEAR

LUA_MESSAGE_TYPE_CRV

LUA_MESSAGE_TYPE_LUSTAT_LU

LUA_MESSAGE_TYPE_LUSTAT_SSCP

LUA_MESSAGE_TYPE_QC

LUA_MESSAGE_TYPE_QEC

LUA_MESSAGE_TYPE_RELQ

LUA_MESSAGE_TYPE_RQR

LUA_MESSAGE_TYPE_RTR

LUA_MESSAGE_TYPE_SBI

LUA_MESSAGE_TYPE_SHUTD

LUA_MESSAGE_TYPE_SIGNAL

LUA_MESSAGE_TYPE_SDT

LUA_MESSAGE_TYPE_STSN

LUA_MESSAGE_TYPE_UNBIND

Die Session Level Interface (SLI) empfängt und antwortet über die LUA-Schnittstellenerweiterungsroutinen auf bind-, CRV- und STSN-Anforderungen.

LU_DATA, LUSTAT_LU, LUSTAT_SSCP und SSCP_DATA sind keine SNA-Befehle.

lua_flag2
Zurückgegebener Parameter. Enthält Flags für nachrichten, die von LUA zurückgegeben werden. Die Unterparameter sind wie folgt:

lua_flag2.bid_enable

Gibt an, dass RUI_BID erfolgreich erneut aktiviert wurde, wenn sie auf 1 festgelegt ist.

lua_flag2.async

Gibt an, dass das LUA-Schnittstellenverb asynchron abgeschlossen wurde, wenn er auf 1 festgelegt ist.

lua_flag2.sscp_exp

Gibt den beschleunigten SSCP-Fluss an, wenn er auf 1 festgelegt ist.

lua_flag2.sscp_norm

Gibt den normalen SSCP-Fluss an, wenn er auf 1 festgelegt ist.

lua_flag2.lu_exp

Gibt den beschleunigten LU-Fluss an, wenn er auf 1 festgelegt ist.

lua_flag2.lu_norm

Gibt den normalen LU-Fluss an, wenn er auf 1 festgelegt ist.

lua_resv56
Reserviert und sollte auf Null festgelegt werden.

lua_encr_decr_option
Reserviert und sollte auf Null festgelegt werden.

lua_peek_data
Das Gewerkschaftsmitglied von LUA_SPECIFIC , das von den verben RUI_BID und SLI_BIDverwendet wird. Zurückgegebener Parameter. Enthält bis zu 12 Bytes der Daten, die auf das Lesen warten.

Rückgabecodes

LUA_OK
Primärer Rückgabecode; das Verb erfolgreich ausgeführt wurde.

LUA_CANCELED
Primärer Rückgabecode; das Verb wurde nicht erfolgreich abgeschlossen, da es von einem anderen Verb abgebrochen wurde.

LUA_TERMINATED

Sekundärer Rückgabecode; RUI_TERM wurde ausgegeben, während dieses Verb aussteht.

LUA_PARAMETER_CHECK
Primärer Rückgabecode; das Verb wurde aufgrund eines Parameterfehlers nicht ausgeführt.

LUA_BAD_SESSION_ID

Sekundärer Rückgabecode; Ein ungültiger Wert für lua_sid wurde im VCB angegeben.

LUA_BID_ALREADY_ENABLED

Sekundärer Rückgabecode; RUI_BID wurde abgelehnt, da bereits ein vorheriger RUI_BID ausstehend war. Es kann jeweils nur ein RUI_BID ausstehen.

LUA_INVALID_POST_HANDLE

Sekundärer Rückgabecode; für ein Windows-Betriebssystem, das Ereignisse als asynchrone Bereitstellungsmethode verwendet, enthält die Windows LUA VCB kein gültiges Ereignishandle.

LUA_RESERVED_FIELD_NOT_ZERO

Sekundärer Rückgabecode; Ein reserviertes Feld im Verbdatensatz oder ein Parameter, der von diesem Verb nicht verwendet wird, wurde auf einen Wert ungleich Null festgelegt.

LUA_VERB_LENGTH_INVALID

Sekundärer Rückgabecode; ein LUA-Verb wurde mit dem Wert lua_verb_length unerwartet von LUA ausgegeben.

LUA_STATE_CHECK
Primärer Rückgabecode; das Verb wurde nicht ausgeführt, weil es in einem ungültigen Zustand ausgegeben wurde.

LUA_NO_RUI_SESSION

Sekundärer Rückgabecode; RUI_INIT wurde für den in diesem Verb angegebenen LU-Namen noch nicht erfolgreich abgeschlossen.

LUA_UNSUCCESSFUL
Primärer Rückgabecode; Der angegebene Verbdatensatz war gültig, aber das Verb wurde nicht erfolgreich abgeschlossen.

LUA_INVALID_PROCESS

Sekundärer Rückgabecode; Der Prozess, der dieses Verb ausgestellt hat, war nicht derselbe Prozess, der RUI_INIT für diese Sitzung ausgestellt hat. Nur der Prozess, der eine Sitzung gestartet hat, kann Verben in dieser Sitzung ausgeben.

LUA_NEGATIVE_RSP
Primärer Rückgabecode; LUA hat einen Fehler in den vom Host empfangenen Daten erkannt. Anstatt die empfangene Nachricht an die Anwendung an RUI_READ zu übergeben, verwirft LUA die Nachricht (und den Rest der Kette, wenn sie sich in einer Kette befindet) und sendet eine negative Antwort an den Host.

LUA informiert den Antrag auf eine nachfolgende RUI_READ oder RUI_BID , dass eine negative Antwort gesendet wurde.

Der sekundäre Rückgabecode enthält den Sinnescode, der auf der negativen Antwort an den Host gesendet wird. Informationen zum Interpretieren der Werte des Sense-Codes, die zurückgegeben werden können, finden Sie unter SNA-Überlegungen mithilfe von LUA.

Ein null sekundärer Rückgabecode gibt an, dass LUA nach einer vorherigen RUI_WRITE einer negativen Antwort auf eine Nachricht in der Mitte einer Kette jetzt alle Nachrichten aus dieser Kette empfangen und verworfen hat.

LUA_COMM_SUBSYSTEM_ABENDED
Primärer Rückgabecode; gibt eine der folgenden Bedingungen an:

  • Der von dieser Unterhaltung verwendete Knoten hat einen ABEND gefunden.

  • Die Verbindung zwischen dem Transaktionsprogramm (TP) und der physischen Einheit (PU) 2.1-Knoten wurde unterbrochen (LAN-Fehler).

  • Die SnaBase auf dem Computer der TPs hat einen ABEND gefunden.

    LUA_SESSION_FAILURE
    Primärer Rückgabecode; eine erforderliche Hostintegrationsserverkomponente wurde beendet.

    LUA_LU_COMPONENT_DISCONNECTED

    Sekundärer Rückgabecode; gibt an, dass die LUA-Sitzung aufgrund eines Problems mit dem Linkdienst oder mit der Host-LU fehlgeschlagen ist.

    LUA_RUI_LOGIC_ERROR

    Sekundärer Rückgabecode; Ein interner Fehler wurde in LUA erkannt. Dieser Fehler sollte während des normalen Vorgangs nicht auftreten.

    LUA_INVALID_VERB
    Primärer Rückgabecode; entweder der Verbcode oder der Vorgangscode oder beides ist ungültig. Das Verb wurde nicht ausgeführt.

    LUA_STACK_TOO_SMALL
    Primärer Rückgabecode; Die Stapelgröße der Anwendung ist zu klein, um das Verb auszuführen. Erhöhen Sie die Stapelgröße Ihrer Anwendung.

    LUA_COMM_SUBSYSTEM_NOT_LOADED
    Primärer Rückgabecode; Eine erforderliche Komponente konnte nicht geladen oder beendet werden, während das Verb verarbeitet wird. So konnte die Kommunikation nicht stattfinden. Wenden Sie sich an den Systemadministrator, um Korrekturmaßnahmen zu ergreifen.

    LUA_UNEXPECTED_DOS_ERROR
    Primärer Rückgabecode; nach dem Ausgeben eines Betriebssystemaufrufs wurde ein unerwarteter Rückgabecode des Betriebssystems empfangen und im sekundären Rückgabecode angegeben.

Bemerkungen

RUI_BID wird von Anwendungen verwendet, für die eine Benachrichtigung erforderlich ist, dass eine Nachricht auf das Lesen wartet. Auf diese Weise kann die Anwendung bestimmen, wie sie die Nachricht behandelt, bevor RUI_READ ausgegeben wird.

Wenn eine Nachricht verfügbar ist, gibt RUI_BID mit Details des Nachrichtenflusses zurück, auf dem sie empfangen wurde, den Nachrichtentyp, den TH und RH der Nachricht sowie bis zu 12 Byte Nachrichtendaten.

Der Hauptunterschied zwischen RUI_BID und RUI_READ besteht darin, dass RUI_BID es der Anwendung ermöglicht, die Daten zu überprüfen, ohne sie aus der Warteschlange für eingehende Nachrichten zu entfernen, sodass sie zu einem späteren Zeitpunkt verlassen und darauf zugegriffen werden kann. RUI_READ entfernt die Nachricht aus der Warteschlange. Wenn die Anwendung also die Daten liest, muss sie ebenfalls verarbeitet werden.

Beachten Sie Folgendes bei der Verwendung von RUI_BID:

  • RUI_INIT muss erfolgreich abgeschlossen werden, bevor dieses Verb ausgegeben wird.

  • Es kann jeweils nur ein RUI_BID ausstehen.

  • Nachdem RUI_BID erfolgreich abgeschlossen wurde, kann es erneut ausgeführt werden, indem lua_flag1.bid_enable für eine nachfolgende RUI_READ festgelegt wird. Wenn das Verb auf diese Weise neu erstellt wird, darf die Anwendung den mit dem RUI_BID Datensatz verknüpften Speicher nicht freigeben oder ändern.

  • Wenn eine Nachricht vom Host eingeht, wenn RUI_READ und RUI_BID beide ausstehen, wird RUI_READ abgeschlossen und RUI_BID wird ausgeführt.

    Jede eintreffende Nachricht wird nur einmal angeboten. Nachdem RUI_BID darauf hinweist, dass Daten auf einen bestimmten Sitzungsfluss warten, stellt die Anwendung probleme RUI_READ , um die Daten zu empfangen. Alle nachfolgenden RUI_BID melden keine Daten, die an diesem Sitzungsfluss ankommen, bis die Nachricht, die das Gebot war, von der Ausstellung RUI_READ akzeptiert wurde.

    Im Allgemeinen gibt der in diesem Verb zurückgegebene lua_data_length Parameter nur die Länge der Daten in lua_peek_data an, nicht die Gesamtlänge der Daten in der wartenden Nachricht (außer wenn ein Wert von weniger als 12 zurückgegeben wird). Die Anwendung sollte sicherstellen, dass die Datenlänge für RUI_READ , die die Daten akzeptiert, ausreichend ist, um die Nachricht zu enthalten.

Siehe auch

RUI_INIT
RUI_READ
RUI_TERM
RUI_WRITE
SLI_OPEN