![]() ![]() ![]() ![]() ![]() ![]() ![]() |
注意 | 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アプリケーションの開発プロセスの説明については、『Oracle Tuxedo CORBAアプリケーション・スタート・ガイド』を参照してください。
基本的なサンプル・アプリケーションを使用すると、ユーザーは利用可能なコースを閲覧し、選択したコースに関する詳細情報を入手できます。図3-1は基本的なサンプル・アプリケーションの機能を表しています。
Basicサンプル・アプリケーションでは、次の機能について示します。
クライアント・アプリケーションとサーバー・アプリケーションを作成する最初の手順は、OMG IDLを使用してすべてのCORBAインタフェースとそのメソッドを指定することです。 Basicサンプル・アプリケーションでは、次のCORBAインタフェースを実装します。
リスト3-1では、Basicサンプル・アプリケーションのCORBAインタフェースを定義したunivb.idl
ファイルを示します。 このファイルのコピーは、Basicサンプル・アプリケーションのディレクトリ内にあります。
module UniversityB
{
typedef unsigned long CourseNumber;
typedef sequence<CourseNumber> CourseNumberList;
struct CourseSynopsis
{
CourseNumber course_number;
string title;
};
typedef sequence<CourseSynopsis> CourseSynopsisList;
interface CourseSynopsisEnumerator
{
CourseSynopsisList get_next_n(
in unsigned long number_to_get,
out unsigned long number_remaining
);
void destroy();
};
typedef unsigned short Days;
const Days MONDAY = 1;
const Days TUESDAY = 2;
const Days WEDNESDAY = 4;
const Days THURSDAY = 8;
const Days FRIDAY = 16;
struct ClassSchedule
{
Days class_days; // bitmask of days
unsigned short start_hour; // whole hours in military time
unsigned short duration; // minutes
};
struct CourseDetails
{
CourseNumber course_number;
double cost;
unsigned short number_of_credits;
ClassSchedule class_schedule;
unsigned short number_of_seats;
string title;
string professor;
string description;
};
typedef sequence<CourseDetails> CourseDetailsList;
interface Registrar
{
CourseSynopsisList
get_courses_synopsis(
in string search_criteria,
in unsigned long number_to_get, // 0 = all
out unsigned long number_remaining,
out CourseSynopsisEnumerator rest
);
CourseDetailsList get_courses_details(in CourseNumberList
courses);
interface RegistrarFactory
{
Registrar find_registrar(
);
};
};
注意: | Universityサンプル・アプリケーションのCORBAクライアント・アプリケーションでは、静的起動を使用しています。 動的起動インタフェースの使用例については、『CORBAクライアント・アプリケーションの作成』を参照してください。 |
IDLコンパイラでは、OMG IDLで定義されたインタフェース仕様を使用して、クライアント・アプリケーションのクライアント・スタブおよびサーバー・アプリケーションのスケルトンを生成します。 クライアント・スタブは、すべてのオペレーション呼出しでクライアント・アプリケーションによって使用されます。 スケルトンは、CORBAオブジェクトを実装するサーバー・アプリケーションを作成するために、記述したコードと共に使用します。 クライアント・スタブとスケルトンの生成および使用方法については、『Oracle Tuxedo CORBAアプリケーション・スタート・ガイド』を参照してください。
開発プロセスでは、idl
コマンドを使用して、OMG IDLファイルをコンパイルし、クライアント・スタブおよびスケルトンを生成します。この作業は、Basicサンプル・アプリケーションのmakefile
で自動化されています。idl
コマンドについては、『Oracle Oracle Tuxedoコマンド・リファレンス』を参照してください。
Oracle TuxedoのCORBA環境では、次の3種類のクライアント・アプリケーションをサポートしています。
開発プロセスでは、以下の処理を行うクライアント・アプリケーション・コードを記述します。
Basicサンプル・アプリケーションには、C++によるクライアント・アプリケーションが用意されています。 クライアント・アプリケーションの記述方法については、『Oracle Tuxedo CORBAアプリケーション・スタート・ガイド』および『CORBAクライアント・アプリケーションの作成』を参照してください。
サンプル・アプリケーションには、ServerオブジェクトのC++コード、およびUniversityサーバー・アプリケーションのメソッド実装が用意されています。
開発プロセスでは、genicf
コマンドを使用して実装構成ファイル(ICF)を作成します。その際、ICFファイルを編集して、Registrar
、RegistrarFactory
およびCourseSynopsisEnumerator
オブジェクトのアクティブ化ポリシーとトランザクション・ポリシーを定義します。Basicサンプル・アプリケーションの場合、Registrar
、RegistrarFactory
およびCourseSynopsisEnumerator
オブジェクトのアクティブ化ポリシーはprocess
、トランザクション・ポリシーはignore
です。Basicサンプル・アプリケーション用のICFファイルが用意されています。
サーバー・アプリケーションの記述については、『CORBAサーバー・アプリケーションの作成』を参照してください。
どのCORBAアプリケーションでも、重要な役割を果たすのがUBBCONFIG
ファイルです。管理者がUBBCONFIG
ファイルの作成を担当する場合でも、プログラマはこのファイルの存在と使用方法を把握しておくことが重要です。システム管理者が構成ファイルを作成するときは、一連のパラメータを使用してCORBAアプリケーションを記述し、これらのパラメータがOracle Tuxedoソフトウェアによって解釈されると、実行可能なアプリケーションが作成されます。
UBBCONFIG
ファイル。ASCII形式なので、任意のエディタで作成および変更できます。すべてのUniversityサンプル・アプリケーションで使用されるUBBCONFIG
ファイルの必須パラメータの設定については、「環境設定」を参照してください。 TUXCONFIG
ファイルは、バイナリ形式のUBBCONFIG
ファイルで、tmloadcf
コマンドを使用して作成します。tmloadcf
コマンドを実行する際は、TUXCONFIG
環境変数をTUXCONFIG
ファイルの名前とディレクトリの場所に設定する必要があります。 UBBCONFIG
ファイルおよびtmloadcf
コマンドについては、『Oracle Tuxedoアプリケーションの設定』および『Oracle Tuxedoコマンド・リファレンス』を参照してください。
Basicサンプル・アプリケーションをビルドするには、以下の手順に従います。
注意: | Basicサンプル・アプリケーションをビルドまたは実行する前に、「環境設定」の手順を実行しておく必要があります。 |
Basicサンプル・アプリケーションの各ファイルは、次のディレクトリにあります。
drive
:\TUXDIR\samples\corba\university
\basic
/usr/TUXDIR/samples/corba/university
/basic
また、utils
ディレクトリを作業ディレクトリにコピーする必要があります。utils
ディレクトリには、Universityデータベースのログ、トレースおよびアクセスを設定するファイルが格納されています。
表3-1に、Basicサンプル・アプリケーションの作成に使用するファイルを示します。
Oracle Tuxedoソフトウェアのインストール時には、サンプル・アプリケーションは読取り専用に設定されています。 Basicサンプル・アプリケーションのファイルを編集または作成するには、次のように作業ディレクトリにコピーしたファイルの保護を変更する必要があります。
prompt>attrib -r drive:\
workdirectory
\*.*
prompt>chmod u+rw /
workdirectory
/*.*
次のコマンドを使用して、Basicサンプル・アプリケーションのクライアント・アプリケーションとサーバー・アプリケーションのビルドに使用する環境変数を設定します。
次のコマンドを使用して、Basicサンプル・アプリケーションで使用するUniversityデータベースを初期化します。
prompt>nmake -f makefileb.nt initdb
prompt>make -f makefileb.mk initdb
次のコマンドを使用して、UBBCONFIG
ファイルをロードします。
開発プロセスでは、buildobjclient
およびbuildobjserver
コマンドを使用して、クライアント・アプリケーションとサーバー・アプリケーションをビルドします。 ただし、Basicサンプル・アプリケーションの場合は、この手順は不要です。
Basicサンプル・アプリケーションのディレクトリには、makefile
が格納されています。このmakefileにより、クライアントとサーバー・サンプル・アプリケーションがビルドされます。
Basicサンプル・アプリケーションのCORBA C++クライアント・アプリケーションとサーバー・アプリケーションをビルドするには、次のコマンドを使用します。
prompt>nmake -f makefileb.nt
prompt>make -f makefileb.mk
Basicサンプル・アプリケーションを実行するには、次の手順に従います。
Basicサンプル・アプリケーションでシステムおよびサンプル・アプリケーションのサーバー・アプリケーションを起動するには、次のコマンドを入力します。
このコマンドを入力すると、次のサーバー・プロセスが開始されます。
ほかのサンプル・アプリケーションを使用するには、次のコマンドを入力して、システムおよびサンプル・アプリケーションのサーバー・プロセスを停止します。
Basicサンプル・アプリケーションのCORBA C++クライアント・アプリケーションを起動するには、次のコマンドを入力します。
以降の項では、Basicサンプル・アプリケーションに含まれているクライアント・アプリケーションについて簡単に説明します。
CORBA C++クライアント・アプリケーションを起動すると、メニューが表示されます。メニューには、次のオプションがあります。
<F> Find courses
<A> List all courses
<D> Display course details
<E> Exit
特定のカリキュラムのサブジェクトに一致するコースを検索するには、次の手順に従います。
データベース内のすべてのコースを一覧表示するには、次の手順に従います。
C++ CORBAクライアント・アプリケーションを終了するには、Optionsプロンプトで「E」
を入力します。
![]() ![]() ![]() |