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

8.2.6 リクエストの送信

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


(1)同期送信

  CORBA_Request_invoke()により、サーバアプリケーションを呼び出します。パラメタとして、リクエストオブジェクトのオブジェクトリファレンスを指定します。

  CORBA_Request_invoke( request, NULL, &env );

  サーバアプリケーションの処理結果は、CORBA_NVList_add_item()で設定したCORBA_NVListオブジェクト(本例ではarg_list)に格納されます。


(2)非同期送信

  CORBA_Request_send()により、サーバアプリケーションを呼び出します。パラメタとして、リクエストオブジェクトのオブジェクトリファレンスを指定します。サーバアプリケーションの処理結果は、CORBA_Request_get_response()により受け取ります。パラメタとして、リクエストオブジェクトのオブジェクトリファレンスを指定します。

  CORBA_Request_send( request,            /* 処理の要求 */
      (CORBA_Flags) NULL, &env ); 
     ... 
  if ( CORBA_Request_get_response(        /* 処理結果の受け取り */
      request, 
      CORBA_RESP_NO_WAIT, 
      &env ) == CORBA_OK ) {              /* ユーザ指定の処理 */
          ..... 
  }

  CORBA_Request_get_response()の結果により、サーバアプリケーションからリクエストが完了していないことが判明した場合、再度CORBA_Request_get_response()を呼び出します。
  サーバアプリケーションの処理結果は、CORBA_NVList_add_item()で設定したCORBA_NVListオブジェクト(本例ではarg_list)に格納されます。