MC_REQUEST_TO_SEND
MC_REQUEST_TO_SEND動詞は、ローカル TP がデータを送信することをパートナー トランザクション プログラム (TP) に通知します。
次の構造体では、 MC_REQUEST_TO_SEND 動詞で使用される動詞制御ブロック (VCB) について説明します。
構文
struct mc_request_to_send {
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;
};
メンバー
opcode
指定されたパラメーター。 動詞操作コード (AP_M_REQUEST_TO_SEND) を指定します。
opext
指定されたパラメーター。 動詞操作拡張機能をAP_MAPPED_CONVERSATION指定します。
reserv2
予約済みフィールド。
primary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定されるプライマリ リターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラーコードについては、「リターン コード」を参照してください。
secondary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定されるセカンダリ リターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラーコードについては、「リターン コード」を参照してください。
tp_id
指定されたパラメーター。 ローカル TP を識別します。
このパラメーターの値は、呼び出し元の TP の TP_STARTED または呼び出された TP の RECEIVE_ALLOCATE によって返されます。
conv_id
指定されたパラメーター。 会話識別子を提供します。
このパラメーターの値は、呼び出し元の TP で MC_ALLOCATE するか、呼び出された TP で RECEIVE_ALLOCATE することによって返されます。
リターン コード
AP_OK
プライマリ リターン コード。動詞は正常に実行されました。
AP_PARAMETER_CHECK
プライマリ リターン コード。パラメーター エラーのため、動詞は実行されませんでした。
AP_BAD_CONV_ID
セカンダリ リターン コード。 conv_id の値が、APPC によって割り当てられた会話識別子と一致しませんでした。
AP_BAD_TP_ID
セカンダリ リターン コード。 tp_id の値が、APPC によって割り当てられた TP 識別子と一致しませんでした。
AP_STATE_CHECK
プライマリ リターン コード。動詞は無効な状態で発行されたため、実行されませんでした。
AP_R_T_S_BAD_STATE
セカンダリ リターン コード。TP がこの動詞を発行したとき、会話は許可された状態ではありません。
AP_COMM_SUBSYSTEM_ABENDED
プライマリ リターン コード。次のいずれかの条件を示します。
このメッセージ交換で使用されているノードで、ABEND が発生しました。
TP と PU 2.1 ノードの間の接続が切断されました (LAN エラー)。
TP のコンピューターの SnaBase で ABEND が発生しました。
ABEND の理由を特定するには、システム管理者がエラー ログを調べる必要があります。
AP_COMM_SUBSYSTEM_NOT_LOADED
主なリターン コード。必要なコンポーネントを読み込めなかったか、動詞の処理中に終了しました。 そのため、通信を行うことができませんでした。 是正措置については、システム管理者に問い合わせてください。この戻りコードを MC_ALLOCATEと共に使用すると、ローカル LU をサポートする通信システムが見つからなかったことを示している可能性があります。 (たとえば、 TP_STARTED で指定されたローカル LU エイリアスが正しくないか、構成されていません)。 lu_alias または mode_name が 8 文字未満の場合は、これらのフィールドに右側のスペースが入力されていることを確認する必要があることに注意してください。 MC_ALLOCATE 要求を 満たすことができるノードがないため、これらのパラメーターにスペースが入力されていない場合、このエラーが返されます。
複数のノードで構成された Microsoft Host Integration Server クライアント システムのこのリターン コードを生成MC_ALLOCATE、次の 2 つのセカンダリ リターン コードがあります。
0xF0000001
セカンダリ リターン コード。ノードが開始されていません。
0xF0000002
セカンダリ リターン コード。少なくとも 1 つのノードが開始されましたが、ローカル LU ( TP_STARTED が発行された場合) は、どのアクティブ ノードでも構成されていません。 この問題は、次のいずれかである可能性があります。
ローカル LU を持つノードが開始されていません。
ローカル LU が構成されていません。
AP_CONVERSATION_TYPE_MIXED
主なリターン コード。TP は、基本的な会話動詞とマップされた会話動詞の両方を発行しました。 1 つの会話で発行できる型は 1 つだけです。AP_INVALID_VERB_SEGMENT
プライマリ リターン コード。VCB がデータ セグメントの終わりを越えています。AP_STACK_TOO_SMALL
プライマリ リターン コード。アプリケーションのスタック サイズが小さすぎて動詞を実行できません。 アプリケーションのスタック サイズを増やしてください。AP_CONV_BUSY
主なリターン コード。どの会話でも、一度に 1 つの未処理の会話動詞しか存在できません。 これは、ローカル TP に複数のスレッドがあり、複数のスレッドが同じ conv_idを使用して APPC 呼び出しを発行している場合に発生する可能性があります。AP_THREAD_BLOCKING
プライマリ リターン コード。呼び出し元のスレッドは、既にブロック呼び出しにあります。AP_UNEXPECTED_DOS_ERROR
プライマリ リターン コード。ローカル TP からの APPC 呼び出しの処理中に、オペレーティング システムから APPC にエラーが返されました。 オペレーティング システムのリターン コードは、secondary_rc 経由で返されます。 これは、Intel バイトスワップ順で表示されます。 問題が解決しない場合は、システム管理者に問い合わせてください。
解説
TP がこの動詞を発行すると、会話は次のいずれかの状態になります。
CONFIRM
PENDING_POST (OS/2)
RECEIVE
状態の変更はありません。
送信要求通知は、次の動詞の rts_rcvd パラメーターを使用してパートナー プログラムによって受信されます。
-
また、MC_TEST_RTSのAP_OKのprimary_rcによっても示されます。
要求から送信への通知は、パートナー TP に直ちに送信されます。APPC は、送信バッファーがいっぱいになるまで、またはフラッシュされるまで待機しません。 その結果、送信要求通知が順番に到着する可能性があります。 たとえば、ローカル TP が SEND 状態で、問題 MC_PREPARE_TO_RECEIVE MC_REQUEST_TO_SEND が続く 場合、パートナー TP は RECEIVE 状態で、送信通知を受信する前に要求対送信通知を受信する可能性があります。 このため、送信要求は、受信動詞を介して TP に報告できます。
この要求に応じて、パートナー TP は会話を次のように変更できます。
MC_PREPARE_TO_RECEIVEまたはMC_RECEIVE_AND_WAITを発行して状態を受信します。
MC_RECEIVE_AND_POSTを発行して状態を PENDING_POSTします。
パートナー TP は、送信要求を無視することもできます。
ローカル TP が後続の受信動詞の what_rcvd パラメーターを使用して次のいずれかの値を受け取ると、会話の状態はローカル TP の SEND に変わります。
MC_CONFIRMEDでAP_CONFIRM_SENDと返信
MC_CONFIRMEDでAP_DATA_COMPLETE_CONFIRM_SENDと返信
AP_SEND
受信動詞は 、MC_RECEIVE_AND_POST、 MC_RECEIVE_IMMEDIATE、 およびMC_RECEIVE_AND_WAITです。