CORBA Universityサンプル・アプリケーション・ガイド

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

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アプリケーションでのトランザクションの使用に関する詳細は、『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ユーザー例外も定義する必要があります。

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

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

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

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

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

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

UBBCONFIGファイル

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

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

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

ICFファイル

開発プロセスでは、Registrarオブジェクトのトランザクション・ポリシーをoptionalからalwaysに変更します。alwaysトランザクション・ポリシーは、このオブジェクトが必ずトランザクションの一部であることを示します。CORBAオブジェクトのトランザクション・ポリシーの定義については、『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が格納されており、これによりクライアント/サーバー・サンプル・アプリケーションがビルドされ、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」を入力します。


  先頭に戻る       前  次