BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   COBOL を使用した BEA Tuxedo アプリケーションのプログラミング   |   先頭へ   |   前へ   |   次へ   |   目次

 


メッセージの送受信

BEA Tuxedo システムで会話型接続が確立されると、イニシエータと下位サーバ間の通信は送信呼び出しと受信呼び出しによって行われます。接続の制御を持つプロセスは、TPSEND(3cbl) ルーチンを使用してメッセージを送信できます。制御がないプロセスは、TPRECV(3cbl) ルーチンを使用してメッセージを受信できます。

注記 発信元 (クライアント) は、最初に TPCONNECT 呼び出しの TPSENDONLY または TPRECVONLY フラグを使用して、どのプロセスが制御を持っているのかを判別します。TPSENDONLY は、発信元が制御を持つことを示します。TPRECVONLY は、呼び出されたサービスに制御が渡されたことを示します。

メッセージの送信

メッセージを送信するには TPSEND(3cbl) ルーチンを使用します。このルーチンには、次の文法を使用します。

01 TPSVCDEF-REC.
COPY TPSVCDEF.
01 TPTYPE-REC.
COPY TPTYPE.
01 DATA-REC.
COPY User Data.
01 TPSTATUS-REC.
COPY TPSTATUS.
CALL "TPSEND" USING TPSVCDEF-REC TPTYPE-REC USER-DATA-REC TPSTATUS-REC.

TPSVCDEF-REC レコードの詳細については、「サービスの定義」を参照してください。TPTYPE-REC レコードの詳細については、「型付きレコードの定義」 を参照してください。

TPSEND ルーチンが失敗すると、対応するエラー・コードが TP-STATUS に設定されます。エラー・コードについては、『BEA Tuxedo COBOL リファレンス』の TPSEND(3cbl) を参照してください。

TPSEND ルーチンを呼び出すたびに、制御を渡す必要はありません。一部のアプリケーションでは、TPSEND の呼び出しを認められているプロセスが、制御をほかのプロセスに渡すまで、現在のタスクで必要な回数だけ呼び出しを実行できます。ただし、プログラムのロジックによっては、会話が継続する間は常に 1 つのプロセスが接続の制御を持たなければならないアプリケーションもあります。

次のコード例は、TPSEND ルーチンの呼び出し方法を示しています。

会話モードでのデータ送信

   . . .
SET TPNOBLOCK TO TRUE.
SET TPNOTIME TO TRUE .
SET TPSIGRSTRT TO TRUE .
SET TPRECVONLY TO TRUE.
*
CALL "TPSEND" USING TPSVCDEF-REC
TPTYPE-REC
DATA-REC
TPSTATUS-REC.
IF NOT TPOK
error processing . . .

メッセージの受信

オープン接続を介してデータを受信するには、TPRECV(3cbl) ルーチンを使用します。この関数には、次の文法を使用します。

01 TPSVCDEF-REC.
COPY TPSVCDEF.
01 TPTYPE-REC.
COPY TPTYPE.
01 DATA-REC.
COPY User Data.
01 TPSTATUS-REC.
COPY TPSTATUS.
CALL "TPRECV" USING TPSVCDEF-REC TPTYPE-REC DATA-REC TPSTATUS-REC.

TPSVCDEF-REC レコードの詳細については、「サービスの定義」 を参照してください。TPTYPE-REC レコードの詳細については、「型付きレコードの定義」を参照してください。

次のコード例は、TPRECV ルーチンの使用方法を示しています。

会話型でのデータ受信

  . . .
SET TPNOCHANGE TO TRUE.
SET TPBLOCK TO TRUE.
SET TPNOTIME TO TRUE.
SET TPSIGRSTRT TO TRUE.
*
MOVE LENGTH OF DATA-REC TO LEN.
*
CALL "TPRECV" USING TPSVCDEF-REC
TPTYPE-REC
DATA-REC
TPSTATUS-REC.
IF NOT TPOK
error processing . . .

 

先頭へ戻る 前のトピックへ 次のトピックへ