Oracle Tuxedo CORBAアプリケーション・スタート・ガイド

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

Oracle Tuxedo CORBAアプリケーションの開発

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

Oracle Tuxedo CORBAクライアントおよびサーバー・アプリケーションの作成方法の詳細は、Oracle Tuxedoオンライン・ドキュメントの次のドキュメントを参照してください。

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

 


Oracle Tuxedo CORBAアプリケーションの開発プロセスの概要

表3-1は、Oracle Tuxedo CORBAアプリケーションの開発プロセスの概略です。

表3-1 Oracle Tuxedo CORBAアプリケーションの開発プロセス
手順
説明
1
Oracle Tuxedoアプリケーションで使用する各CORBAインタフェースについて、Object Management Group (OMG)インタフェース定義言語(IDL)コードを記述します。
2
CORBAクライアント・スタブおよびスケルトンを生成します。
3
CORBAサーバー・アプリケーションを記述します。
4
CORBAクライアント・アプリケーションを記述します。
5
XAリソース・マネージャを作成します。
6
構成ファイルを作成します。
7
TUXCONFIGファイルを作成します。
8
CORBAサーバー・アプリケーションをコンパイルします。
9
CORBAクライアント・アプリケーションをコンパイルします。
10
Oracle Tuxedo CORBAアプリケーションを起動します。

開発プロセスの各手順は、以降の項で詳しく説明します。

図3-1は、Oracle Tuxedo CORBAアプリケーションを開発するプロセスを示しています。

図3-1 Oracle Tuxedo CORBAアプリケーションの開発プロセス

Oracle Tuxedo CORBAアプリケーションの開発プロセス

 


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

このトピックでは、Simpappサンプル・アプリケーションを使用して開発プロセスを説明していきます。

Simpappサンプル・アプリケーションのCORBAサーバー・アプリケーションでは、次の2つのメソッドを備えたCORBAオブジェクトの実装が提供されます。

図3-2は、Simpappサンプル・アプリケーションのしくみを示しています。

図3-2 Simpappサンプル・アプリケーション

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

Simpappサンプル・アプリケーションのソース・ファイルは、Oracle Tuxedoソフトウェアの$TUXDIR\samples\corba\simpappディレクトリにあります。Simpappサンプル・アプリケーションをビルドおよび実行する手順は、同じディレクトリのReadme.txtファイルに記載されています。

注意: Simpappサンプル・アプリケーションは、CORBA C++のクライアント・アプリケーションとサーバー・アプリケーションのビルドを例示します。

Oracle Tuxedoでは、Oracle Tuxedo CORBAアプリケーションの開発を例示および支援するサンプル・アプリケーションがいくつか用意されています。サンプル・アプリケーションの概要については、Oracle Tuxedoオンライン・ドキュメントの『サンプル』を参照してください。

 


ステップ1: OMG IDLコードの記述

Oracle Tuxedo CORBAアプリケーションの記述では、まず最初に、Object Management Group (OMG)インタフェース定義言語(IDL)を使用してすべてのCORBAインタフェースとそれらのメソッドを指定します。OMG IDLで記述したインタフェース定義を使用すると、完全にCORBAインタフェースを定義し、各オペレーションの引数を指定できます。OMG IDLは、純粋な宣言型言語です。つまり、実装の詳細は含まれていません。OMG IDLで指定されるオペレーションは、CORBAバインディングを提供する任意の言語で記述し、呼び出すことができます。

Simpappサンプル・アプリケーションは、表3-2のリストにあるCORBAインタフェースを実装します。

表3-2 Simpappサンプル・アプリケーションのCORBAインタフェース
インタフェース
説明
オペレーション
SimpleFactory
Simpleオブジェクトのオブジェクト参照を作成します。
find_simple()
Simple
文字列の大文字と小文字を変換します。
to_upper()
to_lower()

リスト 3-1は、Simpappサンプル・アプリケーションのCORBAインタフェースを定義するsimple.idlファイルを示しています。

リスト3-1 Simpappサンプル・アプリケーションのOMG IDLコード
#pragma prefix "beasys.com"
interface Simple
{
//Convert a string to lower case (return a new string)
string to_lower(in string val);
     //Convert a string to upper case (in place)
void to_upper(inout string val);
};
interface SimpleFactory
{
Simple find_simple();
};

 


ステップ2: CORBAクライアント・スタブおよびスケルトンの生成

OMG IDLで定義されたインタフェース仕様は、CORBAクライアント・アプリケーションのCORBAクライアント・スタブおよびCORBAサーバー・アプリケーションのスケルトンを生成するためにIDLコンパイラで使用されます。CORBAクライアント・スタブは、CORBAクライアント・アプリケーションによってすべてのオペレーション呼出しで使用されます。記述したコードと一緒にスケルトンを使用すると、CORBAオブジェクトを実装するCORBAサーバー・アプリケーションを作成できます。

開発の過程では、次のコマンドのいずれかを使用して、OMG IDLファイルをコンパイルし、Oracle Tuxedo CORBAクライアント・アプリケーションおよびサーバー・アプリケーションのCORBAクライアント・スタブおよびスケルトンを生成します。

表3-3に、idlコマンドによって作成されるファイルの一覧を示します。

表3-3 idlコマンドで作成されるファイル
ファイル
デフォルト名
説明
CORBAクライアント・スタブ・ファイル
application_c.cpp
リクエストを送信するために生成されたコードを格納します。
CORBAクライアント・スタブ・ヘッダー・ファイル
application_c.h
OMG IDLファイルで指定された各インタフェースと型のクラス定義を格納します。
スケルトン・ファイル
application_s.cpp
OMG IDLファイルで指定した各インタフェース用のスケルトンが含まれます。実行時に、スケルトンではCORBAクライアントのリクエストをCORBAサーバー・アプリケーションの適切なオペレーションにマッピングします。
スケルトン・ヘッダー・ファイル
application_s.h
スケルトンのクラス定義を格納します。
実装ファイル
application_i.cpp
OMG IDLファイルで指定されたインタフェースのオペレーションを実装するメソッドのシグネチャを格納します。
実装ヘッダー・ファイル
application_i.h
OMG IDLファイルで指定された各インタフェースの初期クラス定義を格納します。

 


ステップ3: CORBAサーバー・アプリケーションの記述

Oracle Tuxedoソフトウェアでは、CORBA C++サーバー・アプリケーションがサポートされています。CORBAサーバー・アプリケーションを作成する手順は次のとおりです。

  1. 各インタフェースのオペレーションを実装するメソッドを記述します。
  2. CORBA Serverオブジェクトを作成します。
  3. オブジェクトのアクティブ化ポリシーを定義します。
  4. ファクトリを作成して登録します。
  5. CORBAサーバー・アプリケーションを解放します。
注意: Oracle Tuxedoは、Linux/HP-UX/Solarisでは標準C++ヘッダー・ファイルの新しいスタイルを使用し、AIXではヘッダー・ファイルの以前のスタイルを使用します。どのヘッダー・タイプを使用するかは、OBB_ANSI_CPPマクロを確認して判別できます。
注意: OBB_ANSI_CPPが定義されている場合、標準C++ヘッダーが含まれています。
注意: OBB_ANSI_CPPが定義されていない場合、以前のCヘッダーが含まれています。

各インタフェースのオペレーションを実装するメソッドの記述

OMG IDLファイルをコンパイルした後は、ファイルの各インタフェースのオペレーションを実装するメソッドを記述する必要があります。実装ファイルには、以下のものが含まれます。

実装ファイルは手作業で記述できます。idlコマンドには、実装ファイルのテンプレートを生成するオプションがあります。

リスト 3-2は、Simpappサンプル・アプリケーションのSimpleインタフェースとSimpleFactoryインタフェースのC++実装を示しています。

リスト3-2 SimpleインタフェースとSimpleFactoryインタフェースのC++実装
// Implementation of the Simple_i::to_lower method which converts
// a string to lower case.

char* Simple_i::to_lower(const char* value)
{
CORBA::String_var var_lower = CORBA::string_dup(value);
for (char* ptr = var_lower; ptr && *ptr; ptr++) {
*ptr = tolower(*ptr);
}
return var_lower._retn();
}
// Implementation of the Simple_i::to_upper method which converts
// a string to upper case.

void Simple_i::to_upper(char*& valuel)
{
CORBA::String_var var_upper = value1;
var_upper = CORBA::string_dup(var_upper.in());
for (char* ptr = var_upper; ptr && *ptr; ptr++) {
*ptr = toupper(*ptr);
}
value = var_upper._retn();
}
// Implementation of the SimpleFactory_i::find_simple method which
// creates an object reference to a Simple object.

Simple_ptr SimpleFactory_i::find_simple()
{
CORBA::Object_var var_simple_oref =
TP::create_object_reference(
_tc_Simple->id(),
"simple",
CORBA::NVList::_nil()
);
}

CORBA Serverオブジェクトの作成

Serverオブジェクトでは、次のタスクが実行されます。

CORBAサーバー・アプリケーションでは、Serverオブジェクトはすでにインスタンス化されており、Serverオブジェクトのヘッダー・ファイルを利用することができます。サーバー・アプリケーションを初期化および解放するメソッド、およびサーバーント・オブジェクトを作成するメソッド(必要な場合)は、独自に実装してください。

リスト 3-3は、Simpappサンプル・アプリケーションのServerオブジェクトのC++コードを示しています。

リスト3-3 CORBA C++ Serverオブジェクト
static CORBA::Object_var static_var_factory_reference;
// Method to start up the server

CORBA::Boolean Server::initialize(int argc, char* argv[])
{
// Create the Factory Object Reference

static_var_factory_reference =
TP::create_object_reference(
_tc_SimpleFactory->id(),
"simple_factory",
CORBA::NVList::_nil()
);
// Register the factory reference with the FactoryFinder

TP::register_factory(
static_var_factory_reference.in(),
_tc_SimpleFactory->id()
);
return CORBA_TRUE;
}
// Method to shutdown the server

void Server::release()
{
// Unregister the factory.

try {
TP::unregister_factory(
static_var_factory_reference.in(),
_tc_SimpleFactory->id()
);
}
catch (...) {
TP::userlog("Couldn't unregister the SimpleFactory");
}
}
// Method to create servants

Tobj_Servant Server::create_servant(const char*
interface_repository_id)
{
if (!strcmp(interface_repository_id,
_tc_SimpleFactory->id())) {
return new SimpleFactory_i();
}
if (!strcmp(interface_repository_id,
_tc_Simple->id())) {
return new Simple_i();
}
return 0;
}

オブジェクトのアクティブ化ポリシーの定義

CORBAサーバーを開発する過程では、オブジェクトのアクティブ化ポリシーを設定して、どのイベントでオブジェクトがアクティブ化および非アクティブ化されるのかを指定します。

CORBAサーバー・アプリケーションでは、実装構成ファイル(ICF)でオブジェクトのアクティブ化ポリシーを指定します。genicfコマンドを使用すると、テンプレートのICFファイルが作成されます。

注意: トランザクション・ポリシーもICFファイルで定義します。Oracle Tuxedo CORBAアプリケーションでのトランザクションの使用については、Oracle Tuxedoオンライン・ドキュメントの『CORBAトランザクションの使用』を参照してください。

Oracle Tuxedoソフトウェアでは、表3-4のリストにあるアクティブ化ポリシーがサポートされています。

表3-4 アクティブ化ポリシー
アクティブ化ポリシー
説明
method
オブジェクトのオペレーションの呼出しの間だけオブジェクトをアクティブ化します。これはデフォルトのアクティブ化ポリシーです。
transaction
オペレーションが呼び出されたときにオブジェクトをアクティブ化します。オブジェクトがトランザクション範囲内でアクティブ化された場合、そのオブジェクトはトランザクションがコミットまたはロールバックされるまでは、アクティブ化されたままです。
process
オペレーションが呼び出されたときにオブジェクトをアクティブ化し、次のいずれかが起こったときのみオブジェクトを非アクティブ化します。
  • サーバー・アプリケーションの存在するプロセスが停止されました。
  • TP::deactivateEnable()メソッド(C++)がオブジェクトで呼び出されました。

Simpappサンプル・アプリケーションのSimpleインタフェースには、メソッドのデフォルトのアクティブ化ポリシーが割り当てられます。オブジェクトの状態の管理およびアクティブ化ポリシーの定義の詳細は、Oracle Tuxedoオンライン・ドキュメントの『CORBAサーバー・アプリケーションの作成』を参照してください。

ファクトリの作成と登録

CORBAクライアント・アプリケーションから容易に見つかるように、CORBAサーバー・アプリケーションでファクトリを管理するには、そのファクトリをFactoryFinderオブジェクトに登録するコードを記述する必要があります。

CORBAサーバー・アプリケーションで管理されるファクトリを登録するコードを記述するには、次の手順に従います。

  1. ファクトリのオブジェクト参照を作成します。
  2. create_object_reference()メソッドの呼出しをコードに含めます。その際には、ファクトリのOMG IDLインタフェースのインタフェース・リポジトリIDまたはオブジェクトID (OID)を文字列形式で指定します。ルーティング基準を指定することも可能です。

  3. ファクトリをOracle Tuxedoドメインに登録します。
  4. register_factory()メソッドを使用すると、Oracle TuxedoドメインのFactoryFinderオブジェクトにファクトリを登録できます。register_factory()メソッドでは、ファクトリのオブジェクト参照と文字列識別子を指定する必要があります。

リスト 3-4は、ファクトリを作成および登録する、Simpappサンプル・アプリケーションのコードを示しています。

リスト3-4 ファクトリの作成と登録の例
...
CORBA::Object_var v_reg_oref =
TP:create_object_reference(
_tc.SimpleFactory->id(), //Factory Interface ID
“simplefactory”, //Object ID
CORBA::NVList::_nil() //Routing Criteria
);
	TP::register_factory(
CORBA::Object_var v_reg_oref.in(),
_tc_SimpleFactory->id(),
);
...

リスト 3-4については、次の点に注意してください。

CORBAサーバー・アプリケーションの解放

CORBAサーバー・アプリケーションには、CORBAサーバー・アプリケーションを適切に停止するコードが必要です。release()メソッドは、その目的のために用意されています。release()メソッドの中では、次のようなCORBAサーバー・アプリケーションに固有のクリーンアップ・タスクを実行できます。

停止のリクエストを受信したCORBAサーバー・アプリケーションは、ほかのリモート・オブジェクトからのリクエストを受信することができなくなります。このことは、管理タスクであるCORBAサーバー・アプリケーションの停止の順序に影響します。たとえば、あるサーバー・プロセスがあるとして、2番目のサーバー・プロセスのrelease()メソッドにその最初のサーバー・プロセスの呼出しが含まれている場合はそのサーバー・プロセスを停止しないでください。

サーバーを停止するときには、サーバー・アプリケーションの各ファクトリの登録を削除する必要があります。unregister_factory()メソッドの呼出しは、release()実装の最初のアクションとして行わなければなりません。unregister_factory()メソッドでは、サーバー・アプリケーションのファクトリの登録が削除されます。このオペレーションでは、次の入力引数が必要です。

リスト 3-5は、サーバー・アプリケーションを解放し、CORBAサーバー・アプリケーションのファクトリを登録解除するC++コードを示しています。

リスト3-5 Oracle Tuxedo CORBAサーバー・アプリケーションの解放の例
...
public void release()
{
TP::unregister_factory(
factory_reference.in(),
SimpleFactoryHelper->id
);
}
...

 


ステップ4: CORBAクライアント・アプリケーションの記述

Oracle Tuxedoソフトウェアでは、次のタイプのCORBAクライアント・アプリケーションがサポートされています。

CORBAクライアント・アプリケーションを作成する手順は次のとおりです。

  1. ORBを初期化します。
  2. BootstrapオブジェクトまたはCORBA INSブートストラップ処理メカニズムを使用して、Oracle Tuxedoドメインとの通信を確立します。
  3. FactoryFinder環境オブジェクトの初期リファレンスを解決します。
  4. ファクトリを使用して目的のCORBAオブジェクトのオブジェクト参照を取得します。
  5. CORBAオブジェクトのメソッドを呼び出します。

CORBAクライアントの開発手順は、コード・リスト 3-6で説明されています。それらのリストの内容は、Simpappサンプル・アプリケーションのコードです。Simpappサンプル・アプリケーションのCORBAクライアント・アプリケーションは、ファクトリを使用してSimpleオブジェクトのオブジェクト参照を取得し、Simpleオブジェクトのto_upper()メソッドとto_lower()メソッドを呼び出します。

リスト3-6 Simpappサンプル・アプリケーションのCORBAクライアント・アプリケーション
int main(int argc, char* argv[])
{
try {
// Initialize the ORB
CORBA::ORB_var var_orb = CORBA::ORB_init(argc, argv, "");

// Create the Bootstrap object
Tobj_Bootstrap bootstrap(var_orb.in(), "");

// Use the Bootstrap object to find the FactoryFinder
CORBA::Object_var var_factory_finder_oref =
bootstrap.resolve_initial_references("FactoryFinder");

// Narrow the FactoryFinder
Tobj::FactoryFinder_var var_factory_finder_reference =
Tobj::FactoryFinder::_narrow
(var_factory_finder_oref.in());

// Use the factory finder to find the Simple factory
CORBA::Object_var var_simple_factory_oref =
var_factory_finder_reference->find_one_factory_by_id(
_tc_SimpleFactory->id()
);

// Narrow the Simple factory
SimpleFactory_var var_simple_factory_reference =
SimpleFactory::_narrow(
var_simple_factory_oref.in());

// Find the Simple object
Simple_var var_simple =
var_simple_factory_reference->find_simple();

// Get a string from the user
cout << "String?";
char mixed[256];
cin >> mixed;

// Convert the string to upper case :
CORBA::String_var var_upper = CORBA::string_dup(mixed);
var_simple->to_upper(var_upper.inout());
cout << var_upper.in() << endl;

// Convert the string to lower case
CORBA::String_var var_lower = var_simple->to_lower(mixed);
cout << var_lower.in() << endl;

return 0;
}
}

 


ステップ5: XAリソース・マネージャの作成

Oracle Tuxedo CORBAアプリケーションでトランザクションを使用するとき、Oracle Tuxedo CORBAアプリケーションの代理でデータベースと相互通信を行うリソース・マネージャのCORBAサーバー・プロセスを作成する必要があります。使用するリソース・マネージャは、X/OPEN XA仕様に準拠していなければなりません。リソース・マネージャについての次の情報が必要です。

新しいXAリソース・マネージャをOracle Tuxedoシステムに統合するときには、XAリソース・マネージャについての情報が格納されるようにファイル$TUXDIR/udataobj/RMを更新する必要があります。その情報は、XAリソース・マネージャの適切なライブラリを使用するため、そしてトランザクション・マネージャとXAリソース・マネージャのインタフェースを自動的かつ適切に設定するために使用します。このファイルの形式は次のとおりです。

rm_name:rm_structure_name:library_names

rm_nameはXAリソース・マネージャの名前、rm_structure_nameはXAリソース・マネージャの名前を定義するxa_switch_t構造体の名前、library_namesはXAリソース・マネージャのオブジェクト・ファイルのリストです。これらの値の前後には空白類(タブやスペース)を入れることができ、library_namesの中に埋め込んでもかまいません。コロン(:)は、どの値にも挿入できません。「#」マークで始まる行は、コメントと判断されて無視されます。

buildtmsコマンドを使用すると、XAリソース・マネージャのサーバー・プロセスをビルドできます。buildtmsコマンドの結果として生じるファイルは、$TUXDIR/binディレクトリにインストールする必要があります。

buildtmsコマンドの詳細は、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoコマンド・リファレンス』を参照してください。

 


ステップ6:構成ファイルの作成

Oracle Tuxedoソフトウェアは優れた柔軟性と多くのオプションをアプリケーション設計者やプログラマに提供するので、同じCORBAアプリケーションが2つできることはありません。たとえば、アプリケーションは小さく、単純であることもあれば(マシン上で動作する単一のクライアントやサーバー)、数千単位のクライアント・アプリケーションとサーバー・アプリケーションをまたがるトランザクションを処理できるぐらいに複雑になる場合もあります。このため、管理の対象となるすべてのOracle Tuxedo CORBAアプリケーションについて、システム管理者はそのアプリケーションの構成要素(ドメイン、サーバー・アプリケーション、クライアント・アプリケーション、インタフェースなど)を定義および管理する構成ファイルを用意する必要があります。

構成ファイルを作成するときには、アプリケーションの実行可能バージョンを作成するためにOracle Tuxedoソフトウェアによって解釈されるパラメータのセットを使用してOracle Tuxedo CORBAアプリケーションを記述することになります。管理の設定段階において、システム管理者のする仕事は構成ファイルを作成することです。構成ファイルには、表3-5のリストにあるセクションが格納されます。

リスト 3-7は、Simpappサンプル・アプリケーションの構成ファイルを示しています。

リスト3-7 Simpappサンプル・アプリケーションの構成ファイル
*RESOURCES                               
IPCKEY 55432
DOMAINID simpapp
MASTER SITE1
MODEL SHM
LDBAL N
*MACHINES                               
"PCWIZ"
LMID = SITE1
APPDIR = "C:\TUXDIR\MY_SIM~1"
TUXCONFIG = "C:\TUXDIR\MY_SIM~1\results\tuxconfig"
TUXDIR = "C:\TUXDIR"
MAXWSCLIENTS = 10
*GROUPS                                 
SYS_GRP
LMID = SITE1
GRPNO = 1
APP_GRP
LMID = SITE1
GRPNO = 2
*SERVERS                                
DEFAULT:
RESTART = Y
MAXGEN = 5
TMSYSEVT
SRVGRP = SYS_GRP
SRVID = 1
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 2
CLOPT = "-A -- -N -M"
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 3
CLOPT = "-A -- -N"
TMFFNAME
SRVGRP = SYS_GRP
SRVID = 4
CLOPT = "-A -- -F"
simple_server
SRVGRP = APP_GRP
SRVID = 1
RESTART = N
ISL
SRVGRP = SYS_GRP
SRVID = 5
CLOPT = "-A -- -n //PCWIZ:2468"
*SERVICES

 


ステップ7: TUXCONFIGファイルの作成

構成ファイルには次の2種類があります。

tmloadcfコマンドの詳細は、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoコマンド・リファレンス』を参照してください。

 


ステップ8: CORBAサーバー・アプリケーションのコンパイル

C++サーバー・アプリケーションのコンパイルとリンクには、buildobjserverコマンドを使用します。buildobjserverコマンドの形式は次のとおりです。

buildobjserver [-o servername] [options]

buildobjserverコマンドの構文要素を次に説明します。

マルチスレッドをサポートするサーバー・アプリケーションを作成する場合は、アプリケーションをビルドするときにbuildobjserverコマンドで-tオプションを指定する必要があります。マルチスレッドをサポートするサーバー・アプリケーションの作成については、『CORBAサーバー・アプリケーションの作成』を参照してください。

 


ステップ9: CORBAクライアント・アプリケーションのコンパイル

CORBAクライアント・アプリケーションの開発の最終ステップは、実行可能なクライアント・アプリケーションを生成することです。そのためには、コードをコンパイルしてクライアント・スタブに対してリンクする必要があります。

CORBA C++クライアント・アプリケーションを作成する場合、buildobjclientコマンドを使用してOracle Tuxedo CORBAクライアント・アプリケーションの実行可能ファイルを生成します。このコマンドでは、静的起動を使用するインタフェースのCORBAクライアント・スタブ、関連付けられるヘッダー・ファイル、および標準のOracle Tuxedoライブラリを組み合せてCORBAクライアントの実行可能ファイルが生成されます。buildobjclientコマンドの構文については、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoコマンド・リファレンス』を参照してください。

 


ステップ10: Oracle Tuxedo CORBAアプリケーションの起動

tmbootコマンドを使用すると、Oracle Tuxedo CORBAアプリケーションでサーバー・プロセスを起動できます。通常、CORBAアプリケーションは、UBBCONFIGファイルのRESOURCESセクションでMASTERとして指定されたマシンから起動します。

tmbootコマンドが実行可能ファイルを見つけられるようにするために、Oracle Tuxedoシステムのプロセスは$TUXDIR/binディレクトリに配置する必要があります。サーバー・アプリケーションは、構成ファイルで指定されているとおりにAPPDIRに配置されていなければなりません。

サーバー・アプリケーションの起動時には、tmbootコマンドは構成ファイルからCLOPTSEQUENCESRVGRPSRVID、およびMINパラメータを使用します。サーバー・アプリケーションは、構成ファイルでの順序で起動されます。

tmbootコマンドの使い方については、Oracle Tuxedoオンライン・ドキュメントの『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』を参照してください。

 


その他のOracle Tuxedo CORBAサンプル・アプリケーション

サンプル・アプリケーションは、Oracle Tuxedo CORBAアプリケーションの開発時のタスクを例示し、CORBAクライアントおよびサーバーのプログラマが自分でOracle Tuxedo CORBAアプリケーションを作成する際に使用できるサンプル・コードが含まれています。サンプル・アプリケーションのコードは、Oracle Tuxedo製品の情報トピック全体に渡り、開発および管理ステップを説明するために使用されています。

表3-6は、その他のOracle Tuxedo CORBAサンプル・アプリケーションを説明しています。

表3-6 Oracle Tuxedo CORBAサンプル・アプリケーション
Oracle Tuxedo CORBA
サンプル・アプリケーション
説明
Simpapp
CORBA C++クライアント・アプリケーションおよびC++サーバー・アプリケーションを提供します。C++サーバー・アプリケーションには、C++クライアント・アプリケーションから受信した文字列を処理する2つのオペレーションがあります。
Basic
Oracle Tuxedo CORBAのクライアント・アプリケーションとサーバー・アプリケーションを開発し、Oracle Tuxedoアプリケーションを構成する方法を説明します。C++サーバー・アプリケーションとCORBA C++アプリケーション、CORBAクライアント・アプリケーションのビルドを例示します。
Security
Oracle Tuxedo認証をOracle Tuxedo CORBAアプリケーションに追加する手順を例示します。Securityサンプル・アプリケーションのビルドと実行については、Oracle Tuxedoオンライン・ドキュメントの『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。
Transactions
Basicサンプル・アプリケーションのCORBA C++サーバー・アプリケーションとCORBAクライアント・アプリケーションにトランザクションに関与するオブジェクトを追加します。Transactionsサンプル・アプリケーションは、実装構成ファイル(ICF)を使用して、CORBAオブジェクトのトランザクション・ポリシーを定義する方法を示します。Transactionsサンプル・アプリケーションのビルドと実行については、Oracle Tuxedoオンライン・ドキュメントの『CORBAトランザクションの使用』を参照してください。
Wrapper
既存のOracle Tuxedo ATMIアプリケーションをCORBAオブジェクトとしてラッピングする方法を例示します。
Production
サーバー・アプリケーションの複製、ステートレス・オブジェクトの作成、およびファクトリ・ベースのルーティングの実装を例示します。
Secure Simpapp
証明書認証をサポートするためのSimpappサンプル・アプリケーションに対する必要な開発および管理の変更を実装します。Secure Simpappサンプル・アプリケーションのビルドと実行については、Oracle Tuxedoオンライン・ドキュメントの『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。
Introductory Events
連結されたCORBAクライアント/サーバー・アプリケーションおよびコールバック・オブジェクトを使用してイベントをOracle Tuxedo CORBAアプリケーションに実装する方法を例示します。C++バージョンはOracle Simple Events APIを使用します。Introductory Eventsサンプル・アプリケーションのビルドと実行については、Oracle Tuxedoオンライン・ドキュメントの『CORBA通知サービスの使用』を参照してください。
Advanced Events
一時的および永続的なサブスクリプションとデータ・フィルタ処理を使用した、Oracle Tuxedo CORBAアプリケーションのより複雑なイベントの実装を例示します。C++バージョンはAdvanced CosNotification APIを使用します。Advanced Eventsサンプル・アプリケーションのビルドと実行については、Oracle Tuxedoオンライン・ドキュメントの『CORBA通知サービスの使用』を参照してください。


  先頭に戻る       前  次