Oracle Tuxedo ATMIアプリケーション開発のためのチュートリアル

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

XMLSTOCKAPP (CおよびC++ XMLパーサー・アプリケーション)のチュートリアル

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

 


XMLSTOCKAPPとは

XMLSTOCKAPPは、Oracle Tuxedoシステム・ソフトウェアに同梱されている株式売買のATMIサンプル・アプリケーションです。このアプリケーションでは、単一のマシン上にある2つのサーバーを実行し、CおよびC++ Tuxedoサーバーからのパーサーの呼出しとXMLバッファのルーティングを説明します。片方のサーバーはC++で記述されたTuxedoサーバー(stockxml)、もう一方のサーバーはCで記述されています(stockxml_c)。2つのサーバーは同じSTOCKQUOTEサービスを提供します。クライアントはサービスを呼び出し、株価を戻し、次にXMLバッファを出力します。

このドキュメントでは、XMLSTOCKAPPアプリケーションを開発するための手順を順に示します。このチュートリアルでXMLSTOCKAPPの開発を経験すると、独自のアプリケーションを開発できるようになります。

XMLSTOCKAPPチュートリアルは、次の3つの項から構成されています。

注意: ここで説明する内容は、アプリケーションの開発、管理、プログラミングに経験のあるシステム・ユーザーを対象としています。また、Oracle Tuxedoシステム・ソフトウェアについて理解していることを前提としています。Oracle Tuxedoアプリケーションをビルドするには、開発ライセンスが必要です。

 


XMLSTOCKAPPについて

ここでは、XMLSTOCKAPPアプリケーションを構成するファイル、クライアント、およびサービスについて説明します。それぞれの詳細は、次を参照してください。

XMLSTOCKAPPのファイルについて

XMLSTOCKAPPアプリケーションを構成するファイルは、samples/atmi/xmlstockappディレクトリに置かれています。このサンプルに用意されているファイルは、次のとおりです。

XMLSTOCKAPPディレクトリには、次のファイルが置かれています。

XMLSTOCKAPPクライアントの検証

Oracle TuxedoシステムのATMIクライアント/サーバー・アーキテクチャでは、通信に次の2つのモードがあります。

XMLSTOCKAPPではリクエスト/レスポンス・モードを実装し、STOCKQUOTEサービスを使用して株価をリクエストします。

  1. BEASまたはMSFTの株価のリクエスト。
  2. XMLファイル内の単一の引数で実行されるクライアントが、STOCKQUOTEサービスを呼び出します。
  3. サービスはXMLバッファを株価で更新します。
  4. クライアントはXMLバッファを出力します。

リクエスト/レスポンス・クライアント: stock_quote_beas.xml

Client.cppはXMLファイル、stock_quote_beas.xmlまたはstock_quote_msft.xmlからの入力を使用するクライアント・プログラムです。STOCKQUOTEサービスを呼び出す問合せを行い、BEASまたはMSFTの株価を戻します。次のように実行可能プログラムとして呼び出します。

Client stock_quote_beas.xml

または

Client stock_quote_msft.xml

関連項目

XMLSTOCKAPPサーバーの検証

ATMIサーバーとは、1つ以上のサービスを提供する実行可能プロセスです。Oracle Tuxedoシステムでは、サーバーはクライアントとして動作するプロセスから継続的にリクエストを受け取り、それを適切なサービスにディスパッチします。Oracle Tuxedoシステムのトランザクション処理アプリケーションの機能性は、これらのサービスがリソース・マネージャにアクセスすることによって実現されます。サービス・ルーチンは、Oracle Tuxedoシステム・プログラマによって作成する必要のあるアプリケーションの一部です(ユーザー定義のクライアントは、アプリケーションの別の部分)。

XMLSTOCKAPPプログラムのSTOCKQUOTEサービスは、アプリケーション・トランザクション・モニター・インタフェース(ATMI)で提供される機能を使用して、クライアントにXMLバッファとして株価を返します。

 


XMLSTOCKAPPのファイルおよびリソースの準備

ここでは、XMLSTOCKAPPを実行するために必要なファイルやリソースを作成するための手順を順に示します。

ステップ1 :新しいディレクトリへのXMLSTOCKAPPファイルのコピー

ファイルを編集したりサンプルを実行したりする前に、XMLSTOCKAPPファイルを独自のディレクトリにコピーしておくことをお薦めします。

ステップ2 :環境変数の設定

環境変数ファイルを編集する必要があります。

  1. TUXDIRが設定されていることを確認します。設定されていない場合、ファイルの実行が失敗して、次のメッセージが表示されます。
  2. TUXDIR: parameter null or not set
  3. TUXDIRパラメータにOracle Tuxedoシステムのディレクトリ構造でのルート・ディレクトリを設定し、エクスポートします。
  4. APPDIRを、XMLSTOCKAPPのソース・ファイルが置かれた{TUXDIR}/samples/atmi/XMLSTOCKAPPディレクトリに設定します。APPDIRは、Oracle Tuxedoシステムによって、アプリケーション固有のファイルが検索されるディレクトリです。オリジナルのソース・ファイルを上書きしないようにXMLSTOCKAPPファイルを別のディレクトリにコピーした場合は、そのディレクトリを入力します。TUXDIRの下位ディレクトリである必要はありません。
  5. 環境変数ファイルに必要な変更を加えたら、次のように実行します。
  6. . ./<VARFILE>

    <VARFILE>は環境変数ファイルの名前です。

そのほかの要件

HP-UXとAIXの場合を除いて、LD_LIBRARY_PATHには、共有ライブラリを使用するシステムの$TUXDIR/libが含まれている必要があります。

ステップ3 :クライアントのビルド

クライアントをビルドするには、次のコマンドを使用します。

export CFLAGS=-I

特定のオペレーティング・システムの場合は、次のコマンドを使用します。

クライアントをビルドするには、次のコマンドを使用します。

buildclient -o Client -f Client.cpp -f SAXPrint.cpp -f SAXPrintHandlers.cpp -f -ltxml

ステップ4 : XMLSTOCKAPPでのサーバーのビルド

XMLSTOCKAPPサンプルには2つのサーバーが用意されています。ただし、このサンプルのサーバーをビルドするには、READMEファイルの指示に従う必要があります。

実行可能なATMIサーバーをビルドするには、buildserverを使用します。このコマンドではオプションを使用して、出力ファイル、アプリケーションで提供される入力ファイル、各種の方法でOracle Tuxedoシステム・アプリケーションを実行するためのライブラリを指定します。

buildserverのコマンドラインで指定できる主なオプションを次の例に示します。

buildserverコマンドは.mkで使用され、株式アプリケーションの各サーバーをコンパイルしてビルドします。(詳細は、『Oracle Oracle Tuxedoコマンド・リファレンス』「buildserver(1)」を参照してください。)

stockxmlおよびstockxml_cサーバーのビルド

次のように、buildserverコマンドでstockxmlサーバーとstockxml_cサーバーをビルドします。

buildserver -s STOCKQUOTE -o stockxml -f stockxml.cpp -f DOMTreeErrorReporter.cpp -f -ltxml
buildserver -s STOCKQUOTE -f stockxml_c.c -o stockxml_c -f xmlWrapper.cpp -f DOMTreeErrorReporter.cpp -f -ltxml

次は、コマンドラインで指定されている各オプションの説明です。

関連項目

ステップ5 :構成ファイルの編集

ubbsimpleサンプル構成ファイルを編集して、山かっこで囲まれた項目を実際のインストールに適した値に置き換える必要があります。TUXDIRおよびTUXCONFIG環境変数は構成ファイルの値と一致していなければなりません。

リスト6-1 ubbsimple構成ファイル
1$
2
3 #Skeleton UBBCONFIG file for the BEA Tuxedo Simple Application.
4 #Replace the <bracketed> items with the appropriate values.
5 RESOURCES
6 IPCKEY <Replace with valid IPC Key greater than 32,768>
7
8 #Example:
9
10 #IPCKEY 62345
11
12 MASTER simple
13 MAXACCESSERS 5
14 MAXSERVERS 5
15 MAXSERVICES 10
16 MODEL SHM
17 LDBAL N
18
19 *MACHINES
20
21 DEFAULT:
22
23 APPDIR="<Replace with the current pathname>"
24 TUXCONFIG="<Replace with TUXCONFIG Pathname>"
25 TUXDIR="<Root directory of Tuxedo (not /)>"
26 #Example:
27 # APPDIR="/usr/me/simpdir"
28 # TUXCONFIG="/usr/me/simpdir/tuxconfig"
29 # TUXDIR="/usr/tuxedo"
30
31 <Machine-name> LMID=simple
32 #Example:
33 #tuxmach LMID=simple
34 *GROUPS
35 GROUP1
36 LMID=simple GRPNO=1 OPENINFO=NONE
37
38 *SERVERS
39 DEFAULT:
40 CLOPT="-A"
41 stockxml SRVGRP=GROUP1 SRVID=1
42 stockxml_c SRVGRP=GROUP1 SRVID=1
43 *SERVICES
44 STOCKQUOTE
  1. 山カッコで囲まれた各文字列<string>を適切な値に置き換えます。

関連項目

ステップ6 :バイナリ形式の構成ファイルの作成

バイナリ形式の構成ファイルを作成する場合、XMLSTOCKAPPファイルが置かれたディレクトリに移動し、環境変数を設定することが必要です。その場合、次の手順に従います。

  1. XMLSTOCKAPPファイルが置かれたディレクトリに移動します。
  2. 次のコマンドを入力して、環境変数を設定します。
  3. . ./<variable_file>

    <variable_file>は変数ファイルの名前です。

構成ファイルのロード

構成ファイルを編集したら、それをMASTERマシン上にバイナリ・ファイルとしてロードする必要があります。バイナリ形式の構成ファイルの名前はTUXCONFIG、そのパス名はTUXCONFIG環境変数に定義されています。このファイルは、Oracle Tuxedoのシステム管理者の有効なユーザーIDおよびグループIDを持つユーザーが作成し、この2つのIDは、ご使用の構成ファイルのUIDおよびGIDの値と同じであることが必要です。この要件が満たされていない場合、XMLSTOCKAPPの実行時に権限の問題が発生します。

  1. 次のコマンドを入力して、TUXCONFIGを作成します。
  2.     tmloadcf ubbsimple

    構成のロード時には、この構成をインストールするかどうか、およびインストールする場合は既存の構成ファイルを上書きすることを確認するメッセージが何回か表示されます。このような確認を省くには、コマンドラインで-yオプションを指定します。

  3. アプリケーションで必要なIPCリソースをOracle Tuxedoシステムで計算する場合は、コマンドラインで-cオプションを指定します。
  4. TUXCONFIGは、MASTERマシン上だけにインストールできます。アプリケーションの起動時にtmbootによってほかのマシンに伝播されます。

    ロードする前にtmloadcfによってテキスト形式の構成ファイル(UBBCONFIG)が解析されます。構文エラーが検出された場合、ファイルのロードは失敗します。

関連項目

 


XMLSTOCKAPPの実行

ここでは、XMLSTOCKAPPを起動し、各種のクライアント・プログラムとトランザクションを行ってテストし、終了する手順について順に説明します。

ステップ1 :起動する前に行う準備作業

XMLSTOCKAPPを起動する前に、アプリケーションをサポートするのに十分なIPCリソースがマシンにあることを確認します。IPCリソースに関するレポートを出力するには、tmbootコマンドに-cオプションを指定します。

ステップ2 : XMLSTOCKAPPの起動

  1. 環境変数を設定します。
  2. ../<variable_file> 
  3. 次のコマンドを入力して、アプリケーションを起動します。
  4.     tmboot -y

    「-y」と入力すると、次のようなレポートが画面に出力されます。

    Booting all admin and server processes in /usr/me/appdir/tuxconfig
    Booting all admin processes
    exec BBL -A:
    process id=24223 Started.

このレポートは、構成内のすべてのサーバーが起動するまで出力されます。起動したサーバーの合計数が出力された時点でレポートは終了します。

必要であれば、構成の一部のサーバーだけを起動することもできます。たとえば、管理サーバーだけを起動するには、-Aオプションを指定します。オプションが指定されていない場合は、アプリケーション全体が起動します。

tmbootでは、起動したサーバー数がレポートされるほかに、ULOGにメッセージが送信されます。

関連項目

ステップ3 : XMLSTOCKAPPサービスのテスト

  1. 実行中のシステムにログインする場合は、XMLSTOCKAPPに環境変数を設定する必要があります。その場合、次のコマンドを入力します。
  2. ../<variable_file>
  3. クライアント・プログラムを実行します。クライアント・プログラムを実行するには、次のコマンドを入力します。
  4. Client stock_quote_beas.xml

ステップ4 : XMLSTOCKAPPの停止

XMLSTOCKAPPを終了するには、次のように、引数を指定せずにtmshutdown(1)コマンドをMASTERマシンで入力します。

    tmshutdown -y

このコマンド(またはtmadminの停止コマンド)を実行すると、次のタスクが行われます。

関連項目


  先頭に戻る       前  次