CORBAネーム・サービス・サンプル・アプリケーションの使用
注意:
|
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ネーム・サービス・サンプル・アプリケーションは、Simpappサンプル・アプリケーションを変更したものです。このサンプル・アプリケーションでは、CORBA C++のクライアントとサーバーを提供します。ネーム・サービス・サンプル・アプリケーションは、ネームスペースを使用して
SimpleFactoryオブジェクトを格納します。サーバー・アプリケーションは、
SimpleFactoryオブジェクトを作成し、それをネームスペースにバインドします。クライアント・アプリケーションは、ネームスペースに接続し、
SimpleFactoryオブジェクトの名前を解決して、
SimpleFactoryのメソッドを呼び出します。
図4-1では、ネーム・サービス・サンプル・アプリケーションのしくみを示しています。
ネーム・サービス・サンプル・アプリケーションは、
表4-1のリストにあるCORBAインタフェースを実装します。
表4-1
ネーム・サービス・サンプル・アプリケーションのCORBAインタフェース
|
|
|
|
Simpleオブジェクトのオブジェクト参照を作成します。
|
|
|
|
|
リスト4-1は、ネーム・サービス・サンプル・アプリケーションのCORBAインタフェースを定義する
simple.idlファイルを示しています。
リスト4-1
ネーム・サービス・サンプル・アプリケーションの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();
};
ネーム・サービス・サンプル・アプリケーションのビルドと実行
ネーム・サービス・サンプル・アプリケーションをビルドおよび実行するには、次の手順に従います。
1.
|
ネーム・サービス・サンプル・アプリケーションのファイルを作業ディレクトリにコピーします。
|
2.
|
作業ディレクトリのファイルに対する権限を変更します。
|
ステップ1: ネーム・サービス・サンプル・アプリケーションのファイルを作業ディレクトリにコピーする
ネーム・サービス・サンプル・アプリケーションのファイルを、ローカル・マシンの作業ディレクトリにコピーします。作業ディレクトリでサンプル・アプリケーションを実行すると、サンプル実行時に作成されたファイルを識別できるようになります。以下のセクションでは、ネーム・サービス・サンプル・アプリケーションのディレクトリの場所とソース・ファイルの詳細を説明します。
CORBA C++クライアントおよびサーバー・バージョンのネーム・サービス・サンプル・アプリケーション
ネーム・サービス・サンプル・アプリケーションのファイルは、次のディレクトリにあります。
drive:\tuxdir\samples\corba\cnssimpapp
/usr/local/tuxdir/samples/corba/cnssimpapp
表4-2にリストされているファイルを使用して、ネーム・サービス・サンプル・アプリケーションをビルドおよび実行します。
表4-2
ネーム・サービス・サンプル・アプリケーションに含まれるファイル
|
|
|
Simpleインタフェースと SimpleFactoryインタフェースを宣言するOMG IDLコード。
|
|
ネーム・サービス・サンプル・アプリケーションのCORBAサーバー・アプリケーションのC++ソース・コード。
|
|
ネーム・サービス・サンプル・アプリケーションのCORBAクライアント・アプリケーションのC++ソース・コード。
|
|
Simpleメソッドと SimpleFactoryメソッドを実装するC++ソース・コード。
|
|
Simpleメソッドと SimpleFactoryメソッドの実装を定義するC++ヘッダー・ファイル。
|
|
C++クライアントとサーバーのネーム・サービス・サンプル・アプリケーションのビルドと実行に関する情報を提供します。
|
|
ネーム・サービス・サンプル・アプリケーションをビルドおよび実行するWindowsコマンド。
|
|
ネーム・サービス・サンプル・アプリケーションをビルドおよび実行するUNIX Kornシェル・スクリプト。
|
|
UNIXオペレーティング・システムのネーム・サービス・サンプル・アプリケーションのmakefile。このファイルは、ネーム・サービス・サンプル・アプリケーションを手動でビルドするのに使用します。詳細は、 Readme.txtを参照してください。実行可能なUNIX makeコマンドの場所は、PATH環境変数で定義する必要があります。
|
|
Windowsオペレーティング・システムのネーム・サービス・サンプル・アプリケーションのmakefile。このmakefileは、Visual C++の nmakeコマンドで直接使用できます。このファイルは、ネーム・サービス・サンプル・アプリケーションを手動でビルドするのに使用します。詳細は、 Readme.txtを参照してください。実行可能なWindows nmakeコマンドの場所は、PATH環境変数で定義する必要があります。
|
ステップ2: ネーム・サービス・サンプル・アプリケーションのファイルに対する保護属性を変更する
サンプル・アプリケーションのファイルは、読取り専用のパーミッション・レベルでインストールされます。ネーム・サービス・サンプル・アプリケーションのファイルを編集またはビルドする前に、作業ディレクトリにコピーするファイルの保護属性を次のように変更する必要があります。
prompt> attrib -r drive:\workdirectory\*.*
2.
|
ksh prompt> chmod u+w /workdirectory/*.*
|
また、UNIXプラットフォームでは、ファイルに実行権限を与えるために
runme.kshのパーミッションを次のように変更する必要もあります。
ksh prompt> chmod +x runme.ksh
ネーム・サービス・サンプル・アプリケーションを実行する前に、一部の環境変数が正しい場所で定義されていることを確認する必要があります。ほとんどの場合、環境変数はインストール手順の一部として設定されます。一部の環境変数は、
runmeコマンドの実行時に設定されます。環境変数をチェックして、正しい情報を反映していることを確認する必要があります。
表4-3に、ネーム・サービス・サンプル・アプリケーションの実行に必要な環境変数を示します。
表4-3
ネーム・サービス・サンプル・アプリケーションで必須の環境変数
|
|
|
runmeコマンドを実行すると、この環境変数がカレント・ディレクトリの絶対パス名に設定されます。サンプル・アプリケーション・ファイルのコピー先ディレクトリから runmeコマンドを実行します。例:
APPDIR=C:¥workdirectory¥cnssimpapp
APPDIR=/usr/workdirectory/cnssimpapp
|
|
runmeコマンドを実行すると、この環境変数は、 APPDIR環境変数で定義された場所の下位ディレクトリ resultsに設定されます。
RESULTSDIR=%APPDIR%\results
RESULTSDIR=$APPDIR\results
|
|
runmeコマンドを実行すると、この環境変数は、構成ファイルのディレクトリ・パスとファイル名に設定されます。
TUXCONFIG=%RESULTSDIR%\tuxconfig
TUXCONFIG=$RESULTSDIR/tuxconfig
|
インストール時に定義された環境変数の情報が正しいかどうかを確認するには、以下の手順を実行します。
1.
|
「スタート」メニューの、「設定」をポイントします。
|
2.
|
「設定」メニューから、「コントロール・パネル」をクリックします。
|
「システムのプロパティ」ウィンドウが表示されます。
ksh prompt> printenv TUXDIR
1.
|
「システムのプロパティ」ウィンドウの「環境」ページで、変更する環境変数をクリックするか、「 変数」フィールドに環境変数の名前を入力します。
|
2.
|
「 値」フィールドに、環境変数の正しい情報を入力します。
|
ksh prompt> export TUXDIR=directorypath
runmeコマンドは、以下の手順を最初から最後まで実行します。
3.
|
クライアント・アプリケーションのコードをコンパイルします。
|
4.
|
サーバー・アプリケーションのコードをコンパイルします。
|
5.
|
tmbootコマンドを使用してサーバー・アプリケーションを起動します。
|
7.
|
tmshutdownコマンドを使用してサーバー・アプリケーションを終了します。
|
注意:
|
ネーム・サービス・サンプル・アプリケーションを手動で実行することもできます。ネーム・サービス・サンプル・アプリケーションを手動で実行する手順については、 Readme.txtファイルで説明しています。
|
ネーム・サービス・サンプル・アプリケーションをビルドおよび実行するには、次のように
runmeコマンドを入力します。
ksh prompt> cd workdirectory
ネーム・サービス・サンプル・アプリケーションが最初から最後まで正常に実行されると、次の一連のメッセージが出力されます。
Testing NameService simpapp
cleaned up
prepared
built
loaded ubb
booted
ran
shutdown
saved results
PASSED
表4-4では、
runmeコマンドで作業ディレクトリ内に生成されたファイルを示しています。
表4-4
runmeコマンドで生成されるC++ファイル
|
|
|
idl コマンドによって生成されます。このファイルは、 SimpleFactoryインタフェースと Simpleインタフェースのクライアント・スタブを格納します。
|
|
idl コマンドによって生成されます。このファイルは、 SimpleFactoryインタフェースと Simpleインタフェースのクライアント定義を格納します。
|
|
idl コマンドによって生成されます。このファイルは、 SimpleFactoryインタフェースと Simpleインタフェースのサーバー・スケルトンを格納します。
|
|
idl コマンドによって生成されます。このファイルは、 SimpleFactoryインタフェースと Simpleインタフェースのサーバー定義を格納します。
|
|
セキュリティ暗号鍵データベースを格納するファイルです。サブディレクトリは、 runmeコマンドの tmloadcfコマンドによって生成されます。
|
|
runmeコマンドで作成されたディレクトリ。APPDIR環境変数によって定義された場所の下位にあります。
|
表4-5に、
runmeコマンドで
resultsディレクトリ内に生成されるファイルを示します。
表4-5
runmeコマンドでresultsディレクトリに生成されるファイル
|
|
|
runmeコマンドがJavaクライアント・アプリケーションに提供する入力を格納します。
|
|
runmeコマンドがJavaクライアント・アプリケーションを実行するときに生成される出力を格納します。
|
|
runmeコマンドがJavaクライアント・アプリケーションを実行するときに予測される出力を格納します。テストに成功したか失敗したかを判別するために、 outputファイルのデータは expected_outputファイルのデータと比較されます。
|
|
runmeコマンドで生成される出力を格納します。 runmeコマンドが失敗すると、このファイルのエラーをチェックします。
|
|
Windowsオペレーティング・システム・プラットフォームのネーム・サービス・サンプル・アプリケーションのビルドと実行に必要な環境変数を設定するためのコマンドを格納します。
|
|
UNIXオペレーティング・システム・プラットフォームのネーム・サービス・サンプル・アプリケーションのビルドと実行に必要な環境変数を設定するためのコマンドを格納します。
|
|
tmbootコマンドによって生成されるコマンドからの出力です。このコマンドは、 runmeコマンドによって実行されます。-noredirect JavaServerオプションがUBBCONFIGファイルで指定されている場合、System.err.printlnメソッドは、ULOGファイルではなく、stderrファイルに出力を送信します。
|
|
tmbootコマンドによって生成される出力です。このコマンドは、 runmeコマンドによって実行されます。-noredirect JavaServerオプションがUBBCONFIGファイルで指定されている場合、System.out.printlnメソッドは、ULOGファイルではなく、stdoutファイルに出力を送信します。
|
|
TMSYSEVT (システム・イベント・レポート)プロセスで使用するフィルタ規則および通知規則を格納します。このファイルは、 runmeコマンドの tmbootコマンドによって生成されます。
|
|
|
|
Java ネーム・サービス・サンプル・アプリケーション用の UBBCONFIGファイル。
|
|
tmbootコマンドによって生成されるメッセージを含んだログ・ファイル。
|