bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo /Q コンポーネント

 Previous Next Contents View as PDF  

サンプル・アプリケーション

ここでは、次の内容について説明します。

 


概要

ここでは、1 つのクライアントと 1 つのサーバ、および BEA Tuxedo /Q を使用するアプリケーション qsample について説明します。このソフトウェア (対話形式) は、BEA Tuxedo ソフトウェアに同梱されています。

 


前提条件

このサンプル・アプリケーションを実行するには、BEA Tuxedo ソフトウェアがインストールされてビルドされ、ここで説明するファイルやコマンドを使用できることが必要です。BEA Tuxedo ソフトウェアをインストールする必要がある場合、そのインストール方法については『BEA Tuxedo システムのインストール』 を参照してください。

既にインストールされている場合は、ソフトウェアのインストール先のルート・ディレクトリのパス名を確認する必要があります。また、BEA Tuxedo ディレクトリ構造内のディレクトリとファイルに読み取りパーミッションと実行パーミッションを設定し、qsample の各ファイルをコピーしたり、BEA Tuxedo の各コマンドを実行できるようにします。

 


qsample とは

qsample は、BEA Tuxedo /Q を使用する基本的な BEA Tuxedo アプリケーションです。このアプリケーションは、1 つのクライアントと 1 つのサーバ、および 2 つのシステム・サーバ TMQUEUE(5)TMQFORWARD(5) を使用します。クライアントは、TMQUEUE を呼び出して、qsample 用に作成されたキュー・スペースにメッセージを登録します。このメッセージは、TMQFORWARD によってキューから取り出され、アプリケーション・サーバに渡されます。アプリケーション・サーバは、文字列を小文字から大文字に変換し、TMQFORWARD に返します。TMQFORWARD は、応答メッセージをキューに登録します。その間に、クライアントは TMQUEUE を呼び出して、応答をキューから取り出します。応答を受信すると、クライアントはその応答をユーザの画面に表示します。

 


qsample のビルド

以下は、qsample アプリケーションをビルドして実行する手順です。

  1. qsample 用にディレクトリを作成し、そのディレクトリに移動 (cd) します。
    mkdir qsampdir
    cd qsampdir

    この作業は省略せずに行ってください。この作業を行うと、最初からあった qsample のファイルと、手順に従って作成したファイルを確認できるようになります。C シェル (/bin/csh) を使用せずに、標準シェル (/bin/sh) または Korn シェルを使用してください。

  2. qsample ファイルをコピーします。
    cp $TUXDIR/apps/qsample/* .

    一部のファイルを編集してから、実行形式ファイルを作成することがあるので、本ソフトウェアで提供されたオリジナルのファイルではなく、コピーしたファイルを用いて作業することをお勧めします。

  3. ファイルを一覧表示します。
    $ ls
    README
    client.c
    crlog
    crque
    makefile
    rmipc
    runsample
    server.c
    setenv
    ubb.sample
    $

    このアプリケーションを構成するファイルは、次のとおりです。

    README

    アプリケーション、およびそのコンフィギュレーションと実行方法について記述したファイル

    setenv

    環境変数を設定するスクリプト

    crlog

    TLOG ファイルを作成するスクリプト

    crque

    このアプリケーション用のキュー・スペースおよびキューを定義するスクリプト

    makefile

    このアプリケーションの実行可能ファイルを作成する makefile

    client.c

    クライアント・プログラムのソース・コード

    server.c

    サーバ・プログラムのソース・コード

    ubb.sample

    このアプリケーションに対する ASCII 形式のコンフィギュレーション・ファイル

    runsample

    このサンプル・アプリケーションのビルドと実行に必要なすべてのコマンドを呼び出すスクリプト

    rmipc

    キュー・スペースのために IPC 資源を削除するスクリプト

  4. setenv ファイルを編集します。

    setenv ファイルを開いて、TUXDIR 値を BEA Tuxedo システムのインストール先のルート・ディレクトリの絶対パス名に変更します。この値を編集するときに、山かっこ (<>) を削除します。

  5. runsample を実行します。

    runsample スクリプトには、いくつかのコマンドが記述されています。各コマンドの前には、そのコマンドを説明するコメント行があります。

    #set the environment
    . ./setenv
    chmod +w ubb.sample
    uname="`uname -n`"
    ed ubb.sample<<!
    g;<uname -n>;s;;${uname};
    g;<full path of Tuxedo software>;s;;${TUXDIR};
    g;<full path of APPDIR>;s;;${APPDIR};
    w
    q
    !
    #build the client and server
    make client server
    #create the tuxconfig file
    tmloadcf -y ubb.sample
    #create the TLOG
    ./crlog
    #create the QUE
    ./crque
    #boot the application
    tmboot -y
    #run the client
    client
    #shutdown the application
    tmshutdown -y
    #remove the client and server
    make clean
    #remove the QUE ipc resources
    ./rmipc
    #remove all files created
    rm tuxconfig QUE stdout stderr TLOG ULOG*

    このスクリプトを実行すると、各種のコマンドから生成される一連のメッセージが画面に表示されます。このメッセージの中に、次の行があります。

    before: this is a q example
    after:THIS IS A Q EXAMPLE

    before:で始まる行は、client がキューに登録し、server で処理される文字列のコピーです。after:で始まる行は、server から返された文字列です。この 2 行によって、プログラムが正常に動作したことがわかります。

 


理解を深めるために

runserver を使用してサンプル・アプリケーションのビルドと実行を行うほかに、このアプリケーションの各部分について理解することも有用です。ここでは、参照しておくと役立つ内容について説明します。このアプリケーションについて理解を深めると、ほかのアプリケーションも理解できるようになります。

setenv:環境の設定

setenv は、BEA Tuxedo の開発でよく使用されるファイルの 1 つです。TUXDIRAPPDIR、および PATH の 3 つの変数が設定されています。これらの変数は、BEA Tuxedo システムで作業しているときに常に必要になります。SUN マシンで実行する場合は、PATH 変数の先頭に別個に bin が必要になるので注意してください。LD_LIBRARY_PATHSHLIB_PATH、または LIBPATH は、共用ライブラリを使用してシステムをビルドする場合に重要です。使用する必要のある変数は、お使いのオペレーティング・システムに依存します。TUXCONFIG は、システムを起動する前に設定しておく必要があります。QMADMIN は、変数で設定することも、qmadmin(1) コマンド行で指定することもできます。

考慮すべき点は、BEA Tuxedo /Q の作業環境にこのようなファイルが必要とされるかどうか、また、自分の .profile にコマンドを記述して、ログイン時に環境設定を行うかどうかです。

makefile:アプリケーションの作成

makefile は、サーバおよびクライアントをビルドするために、それぞれ buildserver(1) および buildclient(1) を使用することに注意してください。これらのコマンドを個別に実行することも、または make 機能を使用してアプリケーションを常に最新にしておくこともできます。

ここでは makefile について説明していますが、クライアント・プログラムとサーバ・プログラムの .c ファイルも参照しておくことをお勧めします。BEA Tuxedo /Q と関連して特に重要なことは、tpenqueue および tpdequeue の呼び出しです。qspace および qname 引数の値に特に注意してください。コンフィギュレーション・ファイルを確認すると、これらの値の設定元がわかります。

ubb.sample:ASCII コンフィギュレーション・ファイル

コンフィギュレーション・ファイルの中で、特に直接関係する 3 つのエントリとして、TMQUEUE サーバの CLOPT パラメータ、TMQFORWARD サーバの CLOPT パラメータ、および *GROUPS エントリの OPENINFO パラメータがあります。次のコードは、この 3 つを抽出したものです。

# First the CLOPT parameter from TMQUEUE:
CLOPT = "-s QSPACENAME:TMQUEUE -- "
# Then the CLOPT parameter from TMQFORWARD:
CLOPT="-- -i 2 -q STRING"
# Finally, the OPENINFO parameter from the QUE1 group:
OPENINFO = "TUXEDO/QM:<APPDIR pathname>/QUE:QSPACE"

TMQUEUECLOPT パラメータは、サービスのエイリアスとして QSPACENAME を指定しています。再度 client.c を参照して、tpenqueue および tpdequeueqspace 引数を確認してください。TMQFORWARDCLOPT パラメータは、-q オプションを使用して STRING サービスを指定しています。これもそのサービス用にメッセージが登録されるキューに指定された名前であり、client.c にある tpenqueueqname 引数として指定されています。

tmloadcf(1) コマンドは、ASCII 形式のコンフィギュレーション・ファイルをコンパイルして TUXCONFIG ファイルを作成するために使用されます。

crlog:トランザクション・ログの作成

crlog のスクリプトは、tmadmin(1) を呼び出して、TLOG 用のデバイス・リスト・エントリを作成し、その後でコンフィギュレーションで指定されているサイトのためのログを作成します。キュー機能のすべてのメッセージは、トランザクション内でキューに登録され、キューから取り出されるので、TMS_QM サーバによって管理されるトランザクションをトラッキングするログが必要になります。

crque:キュー・スペースとキューの作成

crque のスクリプトは、qmadmin(1) を呼び出して、このサンプル・アプリケーションで使用されるキュー・スペースおよびキューを作成します。キュー・スペースは、QSPACE という名前になることに注意してください。この名前は、コンフィギュレーション・ファイルの OPENINFO パラメータの最後の引数として指定される名前でもあります。STRING および RPLYQ という名前のキューが作成されます。このスクリプトの qspacecreate 部分では、エラー・キューの名前が指定されています。ただし、このスクリプトには、そのキューを作成する qcreate コマンドは含まれていません。この部分は、必要に応じて後で変更します。

アプリケーションの起動、実行、およびシャットダウン

アプリケーション・プログラムを作成し、TUXCONFIG をロードし、キュー・スペースおよびキューを作成したら、次にアプリケーションを起動して実行します。アプリケーションを起動するには、次のコマンドを実行します。

tmboot -y

-y オプションは、tmboot が起動前の確認用プロンプトを表示しないようにします。

サンプル・アプリケーションを実行するには、単に次のコマンドを入力します。

client

アプリケーションをシャットダウンするには、tmshutdown コマンドを使用します。

終了処理

runsample スクリプトには、スクリプト実行前の環境に戻すためのコマンドが 3 つあります。make clean コマンドでは、make を使用して、クライアント用とサーバ用のオブジェクト・ファイルと実行可能ファイルを削除します。

rmipc コマンドは、キュー・スペースの IPC 資源が tmshutdown を使用しても自動的に削除されないため、使用します。tmshutdown は、アプリケーションで使用される BEA Tuxedo IPC 資源を削除します。rmipc を参照すると、rmipc が qmadmin を呼び出し、qmadmin の ipcrm コマンドを使用していることがわかります。その場合、QSPACE を指定して削除する資源が識別されています。

このスクリプトの最後のコマンドは、rm コマンドです。このコマンドは、アプリケーションで生成された数多くのファイルを削除します。これらのファイルが残っていても問題はありません。実際、このサンプル・アプリケーションで作業を続ける場合、tuxconfigQUE、および TLOG は再度作成しなくても済むように残しておくと便利です。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy