1.3 Oracle Tuxedoクライアント

Oracle Tuxedo ATMIクライアントとは、ユーザーのリクエストを収集し、そのリクエストに対するサービスを提供するサーバーにそのリクエストを転送するソフトウェア・モジュールです。ほとんどのソフトウェア・モジュールは、ATMIクライアント初期化ルーチンを呼び出して、Oracle Tuxedoアプリケーションに参加することで、Oracle Tuxedoクライアントとして動作できます。クライアントになると、メッセージ・バッファを割り当てて、サーバーと情報を交換できるようになります。

クライアントは、ATMI終了ルーチンを呼び出してアプリケーションから分離し、Oracle Tuxedoシステムにクライアントを追跡する必要がなくなったことを通知します。これにより、他の操作でOracle Tuxedoアプリケーションのリソースを使用できるようになります。

次は、基本的なクライアント・プロセスの処理を示す擬似コードです。

リクエスト/レスポンス型クライアントの擬似コードのリスト

main()
 {
     allocate a TPINIT buffer
     place initial client identification in buffer
     enroll as a client of the ORACLE Tuxedo application
     allocate buffer
     do while true {
         place user input in buffer
         send service request
         receive reply
         pass reply to the user }
         leave application
 }

この擬似コードに示したほとんどの処理は、ATMI関数で実装されます。ただし、ユーザー入力をバッファに格納する処理と、ユーザーに応答を返す処理には、C言語の関数を使用します。

バッファの割当てでは、クライアント・プログラムによって 型付きバッファ と呼ばれるメモリー領域がOracle Tuxedoランタイム・システムから割り当てられます。型付きバッファとは、C構造体などの形式が指定されたメモリー・バッファです。

ATMIクライアントは、アプリケーションから分離する前に、サービス・リクエストをいくつでも送受信できます。クライアントは、これらのリクエストを一連のリクエスト/レスポンス呼出しとして送信できますが、ある呼出しから別の呼出しに状態の情報を渡す必要がある場合は、会話型サーバーに接続してリクエストを送ることもできます。どちらの方法でもクライアント・プログラムのロジックは同じですが、使用するATMI関数は異なります。

ATMIクライアントを実行するには、buildclientコマンドを実行してそれをコンパイルし、Oracle Tuxedo ATMIおよび必要なライブラリとリンクします。buildclientコマンドの詳細は、「クライアントのコーディング」 を参照してください。