ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)
Interstage

8.5.6 リクエストの送信

サーバアプリケーションに対してリクエストを出します。リクエストの方法として、以下の2つの方法があります。

(1)同期送信

CORBA-REQUEST-INVOKEメソッドにより、サーバアプリケーションを呼び出します。復帰値としてサーバアプリケーションの処理結果が返ります。パラメタとして、リクエストオブジェクトのオブジェクトリファレンスを指定します。

    MOVE 0 TO  FLAG. 
    CALL "CORBA-REQUEST-INVOKE" USING
         REQ
         FLAG
         ENV
         RET-VAL.

(2)非同期送信

CORBA-REQUEST-SENDメソッドにより、サーバアプリケーションを呼び出します。パラメタとして、リクエストオブジェクトのオブジェクトリファレンスを指定します。サーバアプリケーションの処理結果は、CORBA-REQUEST-GET-RESPONSEメソッドにより受け取ります。パラメタとして、リクエストオブジェクトのオブジェクトリファレンスを指定します。

  * 処理の要求
      SET CORBA-INV-NO-RESPONSE OF FLAG TO TRUE.
      CALL "CORBA-REQUEST-SEND" USING
           REQ
           FLAG
           ENV
           RET-VAL. 
  * 処理結果の受け取り
      MOVE CORBA-RESP-NO-WAIT TO  FLAG. 
      CALL "CORBA-REQUEST-GET-RESPONSE" USING
           REQ
           FLAG
           ENV
           RET-VAL. 
      IF RET-VAL = CORBA-TRUE
  * ユーザの処理
      END-IF

CORBA-REQUEST-GET-RESPONSEでサーバアプリケーションからリクエストが完了していないことが判明した場合は、再度CORBA-REQUEST-GET-RESPONSEメソッドを呼び出します。