RUI_WRITE

RUI_WRITE動詞は、LU セッションまたはシステム サービス制御ポイント (SSCP) セッションを介して SNA 要求または応答ユニットを論理ユニット アプリケーション (LUA) アプリケーションからホストに送信し、Microsoft® Windows ® LUA アプリケーションからホスト LU に応答、SNA コマンド、およびデータを送信します。

次の構造体は、 RUI_WRITE によって使用される動詞制御ブロック (VCB) のLUA_COMMONメンバーについて説明 します

構文

  
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;  
};  

メンバー

lua_verb
指定されたパラメーター。 要求ユニット インターフェイス (RUI) 動詞のLUA_VERB_RUI動詞コードが含まれています。

lua_verb_length
指定されたパラメーター。 LUA VCB の長さをバイト単位で指定します。 発行される動詞レコードの長さを含む必要があります。

lua_prim_rc
動詞の完了時に LUA によって設定される主なリターン コード。 有効なリターン コードは、発行された LUA 動詞によって異なります。

lua_sec_rc
動詞の完了時に LUA によって設定されたセカンダリ リターン コード。 有効なリターン コードは、発行された LUA 動詞によって異なります。

lua_opcode
指定されたパラメーター。 発行する動詞の LUA コマンド コード (動詞操作コード) が含LUA_OPCODE_RUI_WRITE。

lua_correlator
指定されたパラメーター。 動詞を他のユーザーが指定した情報とリンクする、ユーザー指定の値が含まれます。 LUA では、この情報は使用または変更されません。 このパラメーターは省略可能です。

lua_luname
指定されたパラメーター。 Windows LUA セッションで使用されるローカル LU の ASCII 名を指定します。

RUI_WRITE は、lua_sidが 0 の場合にのみ、このパラメーター 必要とします。

名前が 8 文字より短い場合、このパラメーターは 8 バイト長で、右側にスペース (0x20) が埋め込まれます。

lua_extension_list_offset
Microsoft® Host Integration Server の RUI では使用されず、0 に設定する必要があります。

lua_cobol_offset
Host Integration Serverでは LUA では使用されず、ゼロにする必要があります。

lua_sid
指定され、返されるパラメーター。 セッション識別子を指定し、 SLI_OPEN および RUI_INITによって返されます。 他の動詞では、このパラメーターを使用して、コマンドに使用されるセッションを識別します。 他の動詞で lua_luname パラメーターを使用してセッションを識別する場合は、 lua_sid パラメーターを 0 に設定します。

lua_max_length
RUI_WRITEでは使用されず、0 に設定する必要があります。

lua_data_length
返されたパラメーター。 RUI_BID動詞のlua_peek_dataで返されるデータの長さを指定します。

lua_data_ptr
RUI_WRITEによってホストに送信されるデータを含むバッファーを指 します

SNA コマンドとデータの両方がこのバッファーに配置され、EBCDIC 形式にすることができます。

lua_post_handle
指定されたパラメーター。 非同期通知をイベントによって実行する場合は、Microsoft Windows で使用されます。 この変数には、通知されるイベントのハンドルまたはウィンドウ ハンドルが含まれます。

lua_th
返されたパラメーター。 送受信されるメッセージの SNA 伝送ヘッダー (TH) が含まれます。 書き込み関数にはさまざまなサブパラメーターが設定され、読み取り関数と入札関数に対して返されます。 そのサブパラメーターは次のとおりです。

lua_th.flags_fid

形式識別タイプ 2、4 ビット。

lua_th.flags_mpf

セグメントマッピングフィールド、2ビット。 データ セグメントの種類を定義します。 有効な値は、次のとおりです。

0x00 中間セグメント0x04最後の セグメント0x08 最初のセグメント0x0C セグメントのみ

lua_th.flags_odai

発信元アドレス フィールド -宛先アドレス フィールド (OAF–DAF) アロケーター インジケーター(1 ビット)。

lua_th.flags_efi

迅速なフロー インジケーター、1 ビット。

lua_th.daf

宛先アドレス フィールド (DAF)、符号なし文字。

lua_th.oaf

発信元アドレス フィールド (OAF)、符号なし文字。

lua_th.snf

シーケンス番号フィールド。符号なし char[2]。

lua_rh
返されたパラメーター。 送受信されるメッセージの SNA 要求/応答ヘッダー (RH) が含まれます。 RUI_WRITEの RH では、キュー応答インジケーター (lua_rh.qri) とペーシング インジケーター (lua_rh.pi) を除くすべてのフィールドが使用されます。 そのサブパラメーターは次のとおりです。

lua_rh.rri

要求-応答インジケーター、1 ビット。

lua_rh.ruc

RU カテゴリ、2 ビット。 有効な値は、次のとおりです。

LUA_RH_FMD (0x00) FM データ セグメントLUA_RH_NC (0x20) ネットワーク制御LUA_RH_DFC (0x40) データ フロー制御LUA_RH_SC (0x60) セッション制御

lua_rh.fi

書式インジケーター(1 ビット)。

lua_rh.sdi

センサー データに含まれるインジケーター (1 ビット)。

lua_rh.bci

開始チェーン インジケーター(1 ビット)。

lua_rh.eci

エンド チェーン インジケーター(1 ビット)。

lua_rh.dr1i

確定応答 1 インジケーター、1 ビット。

lua_rh.dr2i

確定応答 2 インジケーター、1 ビット。

lua_rh.ri

例外応答インジケーター (要求の場合)、または応答の種類インジケーター (応答の場合)、1 ビット。

lua_rh.qri

キューに入った応答インジケーター(1 ビット)。

lua_rh.pi

ペースインジケーター、1 ビット。

lua_rh.bbi

角かっこインジケーター (1 ビット) を開始します。

lua_rh.ebi

終了角かっこインジケーター、1 ビット。

lua_rh.cdi

方向インジケーターを 1 ビット変更します。

lua_rh.csi

コード選択インジケーター、1 ビット。

lua_rh.edi

暗号化されたデータ インジケーター(1 ビット)。

lua_rh.pdi

埋め込みデータ インジケーター、1 ビット。

lua_flag1
指定されたパラメーター。 アプリケーションによって提供されるメッセージのフラグを含むデータ構造を含みます。 そのサブパラメーターは次のとおりです。

lua_flag1.bid_enable

入札有効化インジケーター(1 ビット)。

lua_flag1.close_abend

即時インジケーター (1 ビット) を閉じます。

lua_flag1.nowait

データ フラグ (1 ビット) を待機しません。

lua_flag1.sscp_exp

SSCP 優先フロー、1 ビット。

lua_flag1.sscp_norm

SSCP 標準フロー、1 ビット。

lua_flag1.lu_exp

LU 優先フロー、1 ビット。

lua_flag1.lu_norm

LU 標準フロー、1 ビット。

次のいずれかのフラグを 1 に設定して、データを送信するメッセージ フローを示します。

lua_flag1.sscp_exp

lua_flag1.sscp_norm

lua_flag1.lu_exp

lua_flag1.lu_norm

lua_message_type
RUI_WRITEでは使用されず、0 に設定する必要があります。

lua_flag2
返されたパラメーター。 LUA によって返されるメッセージのフラグが含まれています。 そのサブパラメーターは次のとおりです。

lua_flag2.bid_enable

RUI_BIDが 1 に設定されている場合に正常に再有効化されたことを示します。

lua_flag2.async

LUA インターフェイス動詞が 1 に設定されている場合に非同期的に完了したことを示します。

lua_flag2.sscp_exp

1 に設定されている場合の SSCP 優先フローを示します。

lua_flag2.sscp_norm

1 に設定されている場合の SSCP 標準フローを示します。

lua_flag2.lu_exp

1 に設定されている場合の LU 優先フローを示します。

lua_flag2.lu_norm

1 に設定されている場合の LU 標準フローを示します。

lua_resv56
予約済みで、0 に設定する必要があります。

lua_encr_decr_option
予約済みで、0 に設定する必要があります。

リターン コード

LUA_OK
プライマリ リターン コード。動詞は正常に実行されました。

LUA_CANCELED
主な戻りコード。動詞は別の動詞によって取り消されたため、正常に完了しませんでした。

LUA_TERMINATED

2 次戻りコード。このセッションに 対してRUI_TERM が発行されたため、動詞は取り消されました。

LUA_PARAMETER_CHECK
プライマリ リターン コード。パラメーター エラーのため、動詞は実行されませんでした。

LUA_BAD_DATA_PTR

2 次戻りコード。 lua_data_ptr パラメーターに無効な値が含まれていました。

LUA_BAD_SESSION_ID

2 次戻りコード。VCB でlua_sid の無効な値が指定されました。

LUA_DUPLICATE_WRITE_FLOW

2 次戻りコード。 RUI_WRITE は、この動詞で指定されたセッション フローに対して既に未処理でした (セッション フローは 、lua_flag1 フロー フラグの 1 つを 1 に設定することによって指定されます)。 各セッション フローで未処理にできる RUI_WRITE は一度に 1 つだけです。

LUA_INVALID_FLOW

2 次戻りコード。 lua_flag1.sscp_exp フロー フラグが設定され、SSCP 優先フローでメッセージを送信する必要があることを示します。 LUA では、アプリケーションはこのフローでデータを送信できません。

LUA_INVALID_POST_HANDLE

2 次戻りコード。非同期投稿方法としてイベントを使用するWindowsオペレーティング システムの場合、Windows LUA VCB には有効なイベント ハンドルが含まれていません。

LUA_MULTIPLE_WRITE_FLOWS

2 次戻りコード。複数の lua_flag1 フロー フラグが 1 に設定されました。 データが送信されるセッション フローを示すには、これらのフラグのうち 1 つだけを 1 に設定する必要があります。

LUA_REQUIRED_FIELD_MISSING

2 次戻りコード。は、次のいずれかのケースを示します。

  • lua_flag1 フロー フラグは設定されていません。 これらのフラグのうち 1 つだけを 1 に設定する必要があります。

  • RUI_WRITE は応答の送信に使用され、応答には提供されたデータよりも多くのデータが必要でした。

    LUA_RESERVED_FIELD_NOT_ZERO

    2 次戻りコード。動詞レコード内の予約フィールド、またはこの動詞で使用されていないパラメーターが 0 以外の値に設定されました。

    LUA_VERB_LENGTH_INVALID

    2 次戻りコード。LUA によって予期しない値 lua_verb_length LUA 動詞が発行されました。

    LUA_STATE_CHECK
    プライマリ リターン コード。動詞は無効な状態で発行されたため、実行されませんでした。

    LUA_MODE_INCONSISTENCY

    2 次戻りコード。 RUI_WRITE で送信された SNA メッセージは、現時点では無効でした。 これは、セッションがバインドされる前に LU セッションでデータを送信しようとした場合に発生します。 送信された SNA メッセージのシーケンスを確認します。

    LUA_NO_RUI_SESSION

    セカンダリ リターン コード。 RUI_INIT は、この動詞で指定された LU 名に対してまだ正常に完了していません。

    LUA_UNSUCCESSFUL
    主なリターン コード。指定された動詞レコードは有効でしたが、動詞が正常に完了しませんでした。

    LUA_FUNCTION_NOT_SUPPORTED

    セカンダリ リターン コード。は、次のいずれかの場合を示します。

  • lua_rh.fi ビット (フォーマット インジケーター) は 1 に設定されましたが、指定された RU の最初のバイトは認識された要求コードではありません。

  • lua_rh.ruc パラメーター (RU カテゴリ) は、ネットワーク 制御 (NC) カテゴリを指定しました。LUA では、アプリケーションはこのカテゴリの要求を送信できません。

    LUA_INVALID_PROCESS

    セカンダリ リターン コード。この動詞を発行した OS/2 プロセスは、このセッション に対してRUI_INIT を発行したプロセスと同じではありません。 セッションを開始したプロセスのみが、そのセッションで動詞を発行できます。

    LUA_INVALID_SESSION_PARAMETERS

    セカンダリ リターン コード。ホストから受信 した BIND メッセージに肯定的な応答を送信するためにRUI_WRITE使用されるアプリケーション。 ただし、Host Integration Serverは、指定された BIND パラメーターを受け取ることができず、ホストに否定応答を送信しています。 Host Integration Serverで受け入れられる BIND プロファイルの詳細については、LUA の使用に関する SNA の考慮事項を参照してください。

    LUA_RSP_CORRELATION_ERROR

    セカンダリ リターン コード。 RUI_WRITE を使用して応答を送信する場合、 lua_th.snf (応答対象の受信メッセージのシーケンス番号を示します) に有効な値が含まれていませんでした。

    LUA_RU_LENGTH_ERROR

    セカンダリ リターン コード。 lua_data_length パラメーターに無効な値が含まれていました。 LU 標準フローでデータを送信する場合、最大長はホストから受信した BIND で指定されたとおりです。その他のすべてのフローの最大長は 256 バイトです。

Note

その他の 2 次戻りコードは、指定された SNA データが無効であったか、送信できなかったことを示す SNA センス・コードです。 返される SNA センス・コードの解釈については、 LUA の使用に関する SNA 考慮事項を参照してください。

LUA_COMM_SUBSYSTEM_ABENDED
プライマリ リターン コード。次のいずれかの条件を示します。

  • このメッセージ交換で使用されているノードで、ABEND が発生しました。

  • トランザクション プログラム (TP) と物理ユニット (PU) 2.1 ノード間の接続が切断されました (LAN エラー)。

  • TP コンピューターの SnaBase で、異常終了が発生しました。

    LUA_SESSION_FAILURE
    主なリターン コード。必要なHost Integration Serverコンポーネントが終了しました。

    LUA_LU_COMPONENT_DISCONNECTED

    セカンダリ リターン コード。は、リンク サービスまたはホスト LU の問題が原因で LUA セッションが失敗したことを示します。

    LUA_RUI_LOGIC_ERROR

    セカンダリ リターン コード。LUA 内で内部エラーが検出されました。 このエラーは、通常の操作では発生しません。

    LUA_INVALID_VERB
    主なリターン コード。動詞コードまたは操作コードのいずれか、またはその両方が無効です。 動詞が実行されませんでした。

    LUA_STACK_TOO_SMALL
    プライマリ リターン コード。アプリケーションのスタック サイズが小さすぎて動詞を実行できません。 アプリケーションのスタック サイズを増やしてください。

    LUA_COMM_SUBSYSTEM_NOT_LOADED
    主なリターン コード。必要なコンポーネントを読み込めなかったか、動詞の処理中に終了しました。 そのため、通信を行うことができませんでした。 是正措置については、システム管理者に問い合わせてください。

    LUA_UNEXPECTED_DOS_ERROR
    主なリターン コード。オペレーティング システム呼び出しを発行した後、予期しないオペレーティング システムのリターン コードが受信され、セカンダリ リターン コードで指定されます。

解説

この動詞を 発行する前に、RUI_INITを正常に発行する必要があります。

SNA 要求を送信するときは、 lua_rh 内のすべての適用可能な値を設定する必要があります。 チェーンとブラケットは、アプリケーションの責任です。

応答を送信するときに、応答の種類によって、必要な RUI_WRITE 情報が決まります。 すべての応答について、次の手順を実行する必要があります。

  • 選択した lua_rh.rri フラグを 1 に設定します。

  • 応答する要求のシーケンス番号 を lua_th.snf に指定します。

    マルチチェーン メッセージ応答の場合は、最後に受信したチェーン要素のシーケンス番号を使用する必要があります。 CANCEL コマンドで終わるマルチチェーン・メッセージへの応答には、CANCEL コマンド・シーケンス番号が使用されます。

    要求コードのみを必要とする肯定的な応答の場合は、 lua_rh.ri を 0 (応答が正であることを示す) に設定し、 lua_data_length 0 (データが提供されていないことを示します) に設定します。 要求コードは、指定されたシーケンス番号を使用して、RUI によって入力されます。

    負の応答の場合は、 lua_rh.ri を 1 に設定し、SNA センス コード アドレスに lua_data_ptr し、SNA センス コードの長さ (4 バイト) に lua_data_length します。 シーケンス番号は、要求コードを入力するために、RUI によって使用されます。

    BIND コマンドと STSN コマンドに対する肯定的な応答で応答にデータが必要な場合は、応答を指すように lua_data_ptr 設定し、 lua_data_ptr で提供されるデータの長さに lua_data_lengthを設定します。

    既存の RUI_WRITE が保留中の間、保留中 のRUI_WRITE とは別のセッション フローを指定している場合にのみ、2 つ目の RUI_WRITEを発行できます。 同じセッション フローに対して複数 のRUI_WRITE を未処理にすることはできません。

    RUI_WRITE、RUI_INITが成功した後、いつでも SSCP 標準フローで発行できます。 LU 優先フローまたは LU 標準フローのRUI_WRITE動詞は、BIND を受信した後にのみ許可され、BIND で指定されたプロトコルに従う必要があります。

    RUI_WRITEの正常な完了は、メッセージがデータ リンクに正常にキューに登録されたことを示します。 メッセージが正常に送信されたか、ホストが受け入れたとは限りません。

    (BIND で指定された) セカンダリからプライマリへのハーフセッションでペーシングを使用して、LUA アプリケーションがローカルまたはリモート LU で処理できるデータを超えるデータを送信できないようにすることができます。 この場合、LU の通常のフローの RUI_WRITE が LUA によって遅延し、完了するまでに時間がかかる場合があります。

参照

RUI_INIT
RUI_READ
RUI_TERM
SLI_OPEN
SLI_PURGE
SLI_RECEIVE
SLI_SEND