Tuxedo CORBA University サンプル アプリケーション

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

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

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

注意 : Oracle Tuxedo CORBA Java クライアントと Oracle Tuxedo CORBA Java クライアント ORB は Tuxedo 8.1 で非推奨になり、サポートされなくなりました。Oracle Tuxedo CORBA Java クライアントおよび Oracle Tuxedo CORBA Java クライアント ORB のテキスト参照、関連するコード サンプルはすべてサードパーティの Java ORB ライブラリの実装/実行の簡易化とプログラマによる参照だけに使用する必要があります。
注意 : サード パーティの CORBA Java ORB のテクニカル サポートは、各ベンダによって提供されます。Oracle Tuxedo では、サード パーティの CORBA Java ORB に関する技術的なサポートやマニュアルは提供していません。

CORBA アプリケーションでのトランザクションの使用に関する詳細については、『Tuxedo CORBA トランザクション』を参照してください。

 


Transactions サンプル アプリケーションのしくみ

Transactions サンプル アプリケーションでは、学生はクラスの登録ができます。コースの登録は、トランザクションのスコープ内で実行されます。Transactions サンプル アプリケーションは、以下のように機能します。

  1. 学生は登録するコースのリストを送信します。
  2. リスト内のコースごとに、University サーバ アプリケーションは次の点をチェックします。
    • コースがデータベースにあるかどうか
    • 学生がコースに登録済みであるかどうか
    • 学生が履修できる単位の最大数を超えているかどうか
  3. 次のいずれかの処理が行われます。
    • すべての基準をコースが満たしている場合、University サーバ アプリケーションはコースに学生を登録する。
    • コースがデータベースにない場合、または学生がコースに登録済みの場合、University サーバ アプリケーションは、その学生が未登録の登録コースのリストにコースを追加する。すべての登録要求の処理が完了したら、サーバ アプリケーションは登録に失敗したコースのリストを返します。その際、クライアント アプリケーションから学生に、トランザクションをコミットして登録要求が成功したコースに学生を登録するか、またはトランザクションをロールバックしてすべてのコースの登録を行わないように求めるメッセージが表示されます。
    • 学生が履修できる単位の最大数を超えている場合は、TooManyCredits ユーザ例外が University サーバ アプリケーションからクライアント アプリケーションに返される。続いて、クライアント アプリケーションによって、要求が拒否されたという内容の簡単なメッセージが表示されます。その際、クライアント アプリケーションはトランザクションをロールバックします。

図 5-1 に、Transactions サンプル アプリケーションのしくみを示します。

図 5-1 Transactions サンプル アプリケーション

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

 


Transactions サンプル アプリケーションの開発プロセス

ここでは、Transactions サンプル アプリケーションにトランザクションを追加する手順について説明します。以下の手順は、「Basic サンプル アプリケーション」で概説した開発手順の追加手順です。

注意 : この節に記載されている手順は既に完了しており、Transactions サンプル アプリケーションに組み込まれています。

OMG IDL

開発プロセスでは、Object Management Group (OMG) インタフェース定義言語 (IDL) で Registrarregister_for_courses() オペレーションを定義します。register_for_courses() オペレーションには、NotRegisteredList パラメータがあり、登録に失敗したコースのリストをクライアント アプリケーションに返します。NotRegisteredList の値が空の場合、クライアント アプリケーションはトランザクションをコミットします。

また、TooManyCredits ユーザ例外も定義する必要があります。

クライアント アプリケーション

開発プロセスでは、クライアント アプリケーションに次のコードを追加します。

クライアント アプリケーションでのトランザクションの使用については、『Tuxedo CORBA アプリケーション入門』および『Tuxedo CORBA トランザクション』を参照してください。

University サーバ アプリケーション

開発プロセスでは、University サーバ アプリケーションに次のコードを追加します。

これらのタスクについては、『Tuxedo CORBA サーバ アプリケーションの開発方法』を参照してください。

UBBCONFIG ファイル

開発プロセスでは、UBBCONFIG ファイルで次のものが必要になります。

注意 : Oracle 以外のデータベースを使用する場合、XA パラメータの定義については製品のマニュアルを参照してください。

トランザクション ログおよび UBBCONFIG ファイルのパラメータの定義については、『Oracle Tuxedo アプリケーションの設定』を参照してください。

ICF ファイル

開発プロセスでは、Registrar オブジェクトのトランザクション ポリシーを optional から always に変更します。always トランザクション ポリシーは、このオブジェクトが必ずトランザクションの一部であることを示します。CORBA オブジェクトのトランザクション ポリシーの定義については、『Tuxedo CORBA トランザクション』を参照してください。

 


Transactions サンプル アプリケーションのビルド

Transactions サンプル アプリケーションをビルドするには、次の手順に従います。

  1. Transactions サンプル アプリケーションのファイルをコピーします。
  2. Transactions サンプル アプリケーションのファイルの保護を変更します。
  3. 環境変数を設定します。
  4. University データベースを初期化します。
  5. UBBCONFIG ファイルをロードします。
  6. トランザクション ログを作成します。
  7. クライアントおよびサーバ サンプル アプリケーションをビルドします。

以降の節では、上記の各手順について説明します。

注意 : Transactions サンプル アプリケーションをビルドまたは実行する前に、「環境設定」の手順を実行しておく必要があります。

Transactions サンプル アプリケーションのファイルを作業ディレクトリにコピーする

Transactions サンプル アプリケーションの各ファイルは、次のディレクトリにあります。

Windows

drive:\TUXDIR\samples\corba\university\transaction

UNIX

/usr/TUXDIR/samples/corba/university/transaction

また、utils ディレクトリも作業ディレクトリにコピーする必要があります。utils ディレクトリには、ログ、トレース、および University データベースへのアクセスを設定するファイルが格納されています。

Transactions サンプル アプリケーションを作成するには、表 5-1 に示すファイルを使用します。

表 5-1 Transactions サンプル アプリケーションに含まれるファイル
ファイル
説明
univt.idl
CourseSynopsisEnumeratorRegistrar、および RegistrarFactory インタフェースを宣言する OMG IDL。
univts.cpp
Transactions サンプル アプリケーションの University サーバ アプリケーション用 C++ ソース コード。
univt_i.h
univt_i.cpp
CourseSynopsisEnumeratorRegistrar、および RegistrarFactory インタフェースのメソッド実装用 C++ ソース コード。
univtc.cpp
Transactions サンプル アプリケーションの CORBA C++ クライアント アプリケーション用 C++ ソース コード。
univt_utils.h
univt_utils.cpp
CORBA C++ クライアント アプリケーションのデータベース アクセス関数を定義するファイル。
univt.icf
Transactions サンプル アプリケーションの ICF ファイル。
setenvt.sh
Transactions サンプル アプリケーションのビルドおよび実行に必要な環境変数を設定する UNIX スクリプト。
setenvt.cmd
Transactions サンプル アプリケーションのビルドおよび実行に必要な環境変数を設定する MS-DOS コマンド。
ubb_t.mk
UNIX オペレーティング システム用の UBBCONFIG ファイル。
ubb_t.nt
Windows オペレーティング システム用の UBBCONFIG ファイル。
makefilet.mk
UNIX オペレーティング システムでの Transactions サンプル アプリケーション用の makefile
makefilet.nt
Windows オペレーティング システムでの Transactions サンプル アプリケーション用の makefile
log.cpplog.hlog_client.cpplog_server.cpp
サンプル アプリケーションにログ機能とトレース機能を提供するクライアント アプリケーションとサーバ アプリケーション。これらのファイルは、\utils ディレクトリにある。
oradbconn.cpporanoconn.cpp
Oracle SQL データベース インスタンスへのアクセスを提供するファイル。これらのファイルは、\utils ディレクトリにある。
samplesdb.cppsamplesdb.h
サンプル アプリケーションでのデータベース例外に出力関数を提供するファイル。これらのファイルは、\utils ディレクトリにある。
unique_id.cppunique_id.h
サンプル アプリケーションの C++ Unique ID クラスのルーチン。これらのファイルは、\utils ディレクトリにある。
samplesdbsql.hsamplesdbsql.pc
SQL データベースへのアクセスを実装する C++ クラスのメソッド。これらのファイルは、\utils ディレクトリにある。
university.sql
University データベース用の SQL。このファイルは、\utils ディレクトリにある。

Transactions サンプル アプリケーションのファイル保護の属性を変更する

Oracle Tuxedo ソフトウェアのインストール時には、サンプル アプリケーションは読み取り専用に設定されています。Transactions サンプル アプリケーションのファイルを編集または作成するには、次のように作業ディレクトリにコピーしたファイル保護の属性を変更する必要があります。

Windows

prompt>attrib -r drive:\workdirectory\*.*

UNIX

prompt>chmod u+rw /workdirectory/*.*

環境変数を設定する

次のコマンドを使用して、Transactions サンプル アプリケーションのクライアント アプリケーションとサーバ アプリケーションのビルドに使用する環境変数を設定します。

Windows

prompt>setenvt

UNIX

prompt>/bin/ksh

prompt>../setenvt.sh

University データベースを初期化する

次のコマンドを使用して、Transactions サンプル アプリケーションで使用する University データベースを初期化します。

Windows

prompt>nmake -f makefilet.nt initdb

UNIX

prompt>make -f makefilet.mk initdb

UBBCONFIG ファイルをロードする

次のコマンドを使用して、UBBCONFIG ファイルをロードします。

Windows

prompt>tmloadcf -y ubb_t.nt

UNIX

prompt>tmloadcf -y ubb_t.mk

UBBCONFIG ファイルの作成プロセスでは、アプリケーション パスワードの入力が求められます。このパスワードは、クライアント アプリケーションへのログオンに使用されます。パスワードを入力して Enter キーを押します。その際、パスワードを再入力してパスワードの確認を求めるメッセージが表示されます。

トランザクション ログを作成する

トランザクション ログには、CORBA アプリケーションでのトランザクション処理が記録されます。開発プロセスでは、UBBCONFIG ファイルの TLOGDEVICE パラメータでトランザクション ログの場所を定義する必要があります。Transactions サンプル アプリケーションの場合、トランザクション ログは作業ディレクトリに格納されています。

Transactions サンプル アプリケーションのトランザクション ログを開くには、次の手順に従います。

  1. 次のコマンドを入力して、会話型の管理インタフェースを起動します。
  2. tmadmin

  3. 次のコマンドを入力して、トランザクション ログを作成します。
  4. crdl -b blocks -z directorypath
    clog -m SITE1

    この例では、

    blocks にトランザクション ログに割り当てるブロック数を指定し、directorypath にトランザクション ログの場所を指定します。directorypath オプションは、UBBCONFIG ファイルの TLOGDEVICE パラメータで指定した場所と一致しなければなりません。Windows でのコマンドの例を次に示します。

    crdl -b 500 -z c:\mysamples\university\Transaction\TLOG

  5. 「q」を入力して、会話型の管理インタフェースを終了します。

 


Transactions サンプル アプリケーションのコンパイル

開発プロセスでは、buildobjclient および buildobjserver コマンドを使用して、クライアント アプリケーションとサーバ アプリケーションをビルドします。また、クライアント アプリケーションとサーバ アプリケーションのトランザクション イベントを調整するために、データベース固有のトランザクション マネージャを作成します。ただし、Transactions サンプル アプリケーションの場合は、この手順は不要です。Transactions サンプル アプリケーションのディレクトリには、makefile が格納されています。この makefile により、クライアントとサーバ サンプル アプリケーションがビルドされ、TMS_ORA というトランザクション マネージャが作成されます。

注意 : makefile では、次のパラメータがハード コードされ、Oracle データベース用のトランザクション マネージャが作成されます。
注意 : RM=Oracle_XA
注意 : Oracle 以外のデータベースを使用する場合は、上記のパラメータを変更する必要があります。

Transactions サンプル アプリケーションの CORBA C++ クライアント アプリケーションとサーバ アプリケーションをビルドするには、次のコマンドを使用します。

Windows

prompt>nmake -f makefilet.nt

UNIX

prompt>make -f makefilet.mk

 


Transactions サンプル アプリケーションの実行

Transactions サンプル アプリケーションを実行するには、次の手順に従います。

  1. サーバ アプリケーションを起動します。
  2. 1 つまたは複数のクライアント アプリケーションを起動します。

上記の手順については、以下の節を参照してください。

サーバ アプリケーションの起動

Transactions サンプル アプリケーションでシステムおよびサンプル アプリケーションのサーバ アプリケーションを起動するには、次のコマンドを入力します。

prompt>tmboot -y

このコマンドを入力すると、次のサーバ プロセスが開始されます。

ほかのサンプル アプリケーションを使用するには、次のコマンドを入力して、システムおよびサンプル アプリケーションのサーバ プロセスを停止します。

prompt>tmshutdown

CORBA C++ クライアント アプリケーションの起動

Transactions サンプル アプリケーションの CORBA C++ クライアント アプリケーションを起動するには、次の手順に従います。

  1. MS-DOS プロンプトで次のコマンドを入力します。
  2. prompt>univt_client

  3. 画面に「Enter student id:」と表示されたら、100001 ~ 100010 の任意の数値を入力します。
  4. Enter キーを押します。
  5. 画面に「Enter domain password:」と表示されたら、UBBCONFIG ファイルをロードしたときに定義したパスワードを入力します。
  6. Enter キーを押します。

 


Transactions サンプル アプリケーションのクライアント アプリケーションの使用方法

以降の節では、Transactions サンプル アプリケーションのクライアント アプリケーションの使用方法について簡単に説明します。

CORBA C++ クライアント アプリケーション

Transactions サンプル アプリケーションの CORBA C++ クライアント アプリケーションには、次の追加オプションがあります。

<R>    Register for Courses

コースに登録するには、次の手順に従います。

  1. Options プロンプトで「R」を入力します。
  2. 画面に「Course Number」と表示されたら、コース番号とその後に続けて「-1」を入力します。たとえば、次のように入力します。
  3. 100011
    100039
    -1

  4. Enter キーを押します。
  5. Options プロンプトで「L」を入力すると、学生 ID が登録されているコースを一覧表示できます。

C++ CORBA クライアント アプリケーションを終了するには、Options プロンプトで「E」を入力します。


  ページの先頭       前  次