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

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

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 サンプル アプリケーションの場合、TellerTellerFactory オブジェクトが 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 サービスをラッピングするサーバ アプリケーションの記述方法については、『Tuxedo CORBA サーバ アプリケーションの開発方法』を参照してください。

UBBCONFIG ファイル

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

ICF ファイル

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

CORBA オブジェクトのアクティブ化ポリシーとトランザクション ポリシーの定義については、『Tuxedo 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 が格納されています。この 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」を入力します。


  ページの先頭       前  次