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

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

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

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

注意: 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に関する技術的なサポートやドキュメントは提供していません。

 


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

Wrapperサンプル・アプリケーションでは、クラスに登録した学生の口座にクラスの代金が請求され、その口座残高が更新されます。また、学生は自身の口座残高を照会できます。

Wrapperサンプル・アプリケーションでは、ATMIサービスを使用します。Billingサーバー・アプリケーションには、Tellerオブジェクトがあり、ATMIアプリケーションのTellerを呼び出します。Tellerアプリケーションは、次の課金用のオペレーションを実行します。

Universityデータベースは、口座情報を含めるために変更されます。

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

図6-1 Wrapperサンプル・アプリケーション

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

 


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

ここでは、CORBAアプリケーションでATMIサービスをラッピングする際に必要な開発プロセスについて説明します。次の手順は、「Basicサンプル・アプリケーション」で概説した開発手順の追加手順です。

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

OMG IDL

ATMIサービスをラッピングする際は、ATMIサービスと相互運用するオブジェクト、およびそのオブジェクトを作成するファクトリを定義する必要があります。Wrapperサンプル・アプリケーションの場合、TellerおよびTellerFactoryオブジェクトがATMIサービスと情報をやりとりします。開発プロセスでは、Object Management Group (OMG)インタフェース定義言語(IDL)でTellerおよびTellerFactoryオブジェクトのインタフェースを次のように定義します。

オブジェクト
説明
オペレーション
TellerFactory
Tellerオブジェクトへのオブジェクト参照を返します。
find_teller()
Teller
ATMIアプリケーションと相互運用して、課金用のオペレーションを実行します。
get_balance()
credit()
debit()

BalanceフィールドをStudentDetails構造体に追加する必要があります。クライアント・アプリケーションでは、Balanceフィールドを使用して学生の口座残高を示します。さらに、ユーザー例外DelinquentAccountも追加します。

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

開発プロセスでは、クライアント・アプリケーションにコードを追加して、register_for_courses()オペレーションによって生成されるユーザー例外Delinquent Accountを処理します。

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

開発プロセスでは、Billingサーバー・アプリケーションに次を記述します。

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

ATMIサービスをラッピングするサーバー・アプリケーションの記述方法については、『CORBAサーバー・アプリケーションの作成』を参照してください。

UBBCONFIGファイル

開発プロセスでは、UBBCONFIGファイルに次の変更を加える必要があります。

ICFファイル

開発プロセスでは、TellerおよびTellerFactoryオブジェクトのアクティブ化ポリシーとトランザクション・ポリシーを定義する必要があります。TellerおよびTellerFactoryオブジェクトの各ポリシーは次のように設定します。

CORBAオブジェクトのアクティブ化ポリシーとトランザクション・ポリシーの定義については、『CORBAサーバー・アプリケーションの作成』を参照してください。

 


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

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

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

次の項では、前述の各手順について説明します。

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

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

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

Windows

drive:\TUXDIR\samples\corba\university\wrapper

UNIX

/usr/TUXDIR/samples/corba/university/wrapper

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

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

表6-1 Wrapperサンプル・アプリケーションに含まれるファイル
ファイル
説明
billw.idl
TellerおよびTellerFactoryインタフェースを宣言するOMG IDL。
univw.idl
CourseSynopsisEnumeratorRegistrar、およびRegistrarFactoryインタフェースを宣言するOMG IDL。
billws.cpp
Wrapperサンプル・アプリケーションのBillingサーバー・アプリケーション用C++ソース・コード。
univws.cpp
Wrapperサンプル・アプリケーションのUniversityサーバー・アプリケーション用C++ソース・コード。
billw__i.h
billw_i.cpp
TellerおよびTellerFactoryインタフェースのメソッド実装用C++ソース・コード。
univw_i.h
univw_i.cpp
CourseSynopsisEnumeratorRegistrar、およびRegistrarFactoryインタフェースのメソッド実装用C++ソース・コード。
univwc.cpp
Wrapperサンプル・アプリケーションのCORBA C++クライアント・アプリケーション用C++ソース・コード。
univw_utils.h
univw_utils.cpp
CORBA C++クライアント・アプリケーションのデータベース・アクセス関数を定義するファイル。
univw.icf
Wrapperサンプル・アプリケーションのUniversityサーバー・アプリケーション用ICFファイル。
billw.icf
Wrapperサンプル・アプリケーションのBillingサーバー・アプリケーション用ICFファイル。
setenvw.sh
Wrapperサンプル・アプリケーションのビルドおよび実行に必要な環境変数を設定するUNIXスクリプト。
tellw_flds、tellw_u.c、tellw_c.h、tellws.ec
ATMIアプリケーションTellerのファイル。
setenvw.cmd
Wrapperサンプル・アプリケーションのビルドおよび実行に必要な環境変数を設定するMS-DOSコマンド。
ubb_w.mk
UNIXオペレーティング・システム用のUBBCONFIGファイル。
ubb_w.nt
Windowsオペレーティング・システム用のUBBCONFIGファイル。
makefilew.mk
UNIXオペレーティング・システムでのWrapperサンプル・アプリケーション用のmakefile
makefilew.nt
Windowsオペレーティング・システムでのWrapperサンプル・アプリケーション用の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ディレクトリにあります。

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

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

Windows

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

UNIX

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

環境変数を設定する

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

Windows

prompt>setenvw

UNIX

prompt>/bin/ksh

prompt>. ./setenvw.sh

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

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

Windows

prompt>nmake -f makefilew.nt initdb

UNIX

prompt>make -f makefilew.mk initdb

UBBCONFIGファイルをロードする

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

Windows

prompt>tmloadcf -y ubb_w.nt

UNIX

prompt>tmloadcf -y ubb_w.mk

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

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

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

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

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

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

    説明:

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

    crdl -b 500 -z c:¥mysamples¥university¥wrapper¥TLOG

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

 


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

開発プロセスでは、buildobjclientおよびbuildobjserverコマンドを使用して、クライアント・アプリケーションとサーバー・アプリケーションをビルドします。ただし、Wrapperサンプル・アプリケーションの場合は、この手順は不要です。Wrapperサンプル・アプリケーションのディレクトリには、makefileが格納されており、これによりクライアントおよびサーバー・サンプル・アプリケーションがビルドされます。

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

Windows

prompt>nmake -f makefilew.nt

UNIX

prompt>make -f makefilew.mk

 


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

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

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

前述の手順については、次の項を参照してください。

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

Wrapperサンプル・アプリケーションでシステムおよびサンプル・アプリケーションのサーバー・プロセスを開始するには、次のコマンドを入力します。

prompt>tmboot -y

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

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

prompt>tmshutdown

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

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

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

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

 


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

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

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

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

<B>    Display Your Balance

Display Your Balanceオプションを使用すると、CORBA C++クライアント・アプリケーションのログオンに使用する学生IDに関連付けられた口座残高が表示されます。

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


  先頭に戻る       前  次