| 
			Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
		 | 
	
	
		
			目次
			索引
			  
		 | 
	
E.1.2 実行手順
 本節では、サンプルプログラムの実行手順について説明します。なお、サンプルプログラムを実行する前には、“使用時の注意事項”に記述されている操作を行ってください。
 (a)C, C++, COBOLのサンプルプログラム
 (b)Java言語のサンプルプログラム
 (c)OLEインタフェース
 (d)動的起動インタフェース
 (e)動的スケルトンインタフェース
 (f)ネーミングサービス
 (g)インタフェースリポジトリ
 (h)Windows(R)クライアント
備考
 プログラム実行例では、以下のディレクトリ・変数を使用します。
 ・$OD_HOME: CORBAサービスのインストールパス
  
  /opt/FSUNod(デフォルト時) 
  環境変数として登録する方法は以下のとおりです。
   OD_HOME=/opt/FSUNod
   export OD_HOME
  
  /opt/FJSVod
  環境変数として登録する方法は以下のとおりです。
   OD_HOME=/opt/FJSVod
   export OD_HOME
 ・$SAMPLES: サンプルプログラム格納ディレクトリ($OD_HOME/src/samples)
 ・C:\Interstage\ODWIN: Windows(R)クライアントのインストールパス
(a)C, C++, COBOLのサンプルプログラム
 本項では、C, C++, COBOLのサンプルプログラムの実行手順について説明します。
| 
 種別  | 
 サブディレクトリ  | 
| 
 各種データ型  | 
 complex/samplelist.C/data/* 
complex/samplelist.C++/data/* 
complex/samplelist.C_nt/data/* 
complex/samplelist.C++_nt/data/* 
complex/samplelist.COBOL/data/*  | 
| 
 四則演算  | 
 CalcSample/c 
CalcSample/c++ 
CalcSample/COBOL  | 
| 
 その他(表示) (Cのみ)  | 
 simple 
complex/samplelist.C_nt/simple 
simple_so  | 
| 
 その他(データ入力) (C++のみ)  | 
 simple_cpp 
complex/samplelist.C++_nt/simple_cpp 
simple_cpp_so  | 
| 
 プロセスバインド (C++のみ)  | 
 complex/samplelist.C++/ssn/*  | 
(1)各種データ型、四則演算、その他(表示)
 各種データ型、四則演算、その他(表示)のサンプルプログラムの実行方法として、simpleの実行例を説明します。
 また、各種データ型においてワークユニット上で動作させる場合についても説明します。
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/simple
 - サーバ、およびクライアントアプリケーションを作成します。(注1) (注2) (注7)
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
COBOLサーバアプリケーションをワークユニット上で動作させる場合は、インプリメンテ-ションリポジトリ情報を登録する際にインタフェース定義のパスを絶対パスに修正する必要があります。register内でOD_impl_instコマンドによってインプリメンテーションリポジトリ情報が登録されていますが、OD_impl_instコマンドのaxオプションの引数に指定されている定義ファイルをエディタで開き、インタフェース定義に指定されているライブラリのパスを絶対パスに変更してください。(注3)
 register
 - ワークユニット上で動作させる場合と動作させない場合に分けて以下に説明します。
<各種データ型(ワークユニット上で動作させない場合)、四則演算、その他(表示)>
サーバアプリケーションをバックグラウンドで実行します。(注4) 
 simple_s &
<各種データ型(ワークユニット上で動作させる場合)>
1) ワークユニットの起動に必要なワークユニット定義を登録します。(注6)
  isaddwudef simple.wu
2) ワークユニットを起動します。
  isstartwu ODSAMPLE
 - クライアントアプリケーションを実行します。(注4)(注5)
 simple_c
 <実行結果が表示されます>
 - サーバアプリケーションを終了させます。
ワークユニット上で動作させている場合は、以下の操作を行います。
1) ワークユニットを停止します。
  isstopwu ODSAMPLE
2) 不要となったサンプルプログラムのワークユニット定義を削除します。
  isdelwudef ODSAMPLE
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) 
 
Sun WorkShop4.2を使用してC++言語のサンプルプログラムのコンパイルする場合は、Makefileを修正する必要があります。“-lOMcpp50”を“-lOMcpp”に、“-lOMcncpp50”を“-lOMcncpp”に変更してください。
注2) C++言語のサンプルプログラムのコンパイル時に、以下のような警告メッセージが出力されることがありますが、動作上は問題ありません。

  Warning: String literal converted to char* in formal argument x in call to ...
 UX:make: WARNING: predecessor cycle (simple_stub_c++.o)
 "simple_stub_c++.C", line 330: warning:_result used before set

 xxx.C: In function `void _dt_intf1 (void *)':
 xxx.C:xx: warning: ...
 また、any型では以下のような警告メッセージも出力されることがありますが、動作上は問題ありません。
 simple_s.c: In function `void print_any(const CORBA::Any &)':
 simple_s.c:34: warning: choosing `CORBA::String_var::operator char *()' over `CORBA::String_var::operator const char *() const'
 simple_s.c:34: warning:   for conversion from `CORBA::String_var' to `const char *'
 simple_s.c:34: warning:   because conversion sequence for the argument is better
注3) サンプルではインタフェース定義の登録を行うのはCOBOLアプリケーションだけですが、インプリメンテーション情報にインタフェース定義の登録を行う場合は、C言語やC++言語でもワークユニット上でサーバアプリケーションを動作させるためにインタフェース定義のパスを絶対パスで指定する必要があります。詳細につきましては“リファレンスマニュアル(コマンド編)”の“OD_impl_inst”を参照してください。
注4) Solarisシステムでは、complex/samplelist.COBOL/data下にある各サンプルプログラムのサーバアプリケーション名は、XXX_s(XXXは3桁の数字)、クライアントアプリケーション名は、XXX_c(XXXは3桁の数字)になります。
注5) 各種データ型のexceptionのサンプルプログラムを実行すると、以下のようなメッセージが出力されますが、これらはサンプルプログラムの出力であり、システムやCORBAサービスで異常が発生したことによるものではありません。
| 
 項  | 
 サンプルプログラム名  | 
| 
 出力メッセージ  | 
| 
 1  | 
 complex/samplelist.C/data/exception  | 
| 
 ret = [10] 
id = [IDL:ODsample/exceptest/NOT_FOUND:1.0]:Detail [20] Count [3] 
env_check: invoke ODsample_getinfo fails  | 
| 
 2  | 
 complex/samplelist.C++/data/exception  | 
| 
 10 
NOT_FOUND exception raised! 
Exception-id = IDL:ODsample/exceptest/NOTFOUND:1.0  | 
| 
 3  | 
 complex/samplelist.C_nt/data/exception  | 
| 
 ret = [10] 
id = [IDL:ODsample/exceptest/NOT_FOUND:1.0]:Detail [20] Count [3] 
env_check: invoke ODsample_getinfo fails  | 
| 
 4  | 
 complex/samplelist.C++_nt/data/exception  | 
| 
 10 
NOT_FOUND exception raised! 
Exception-id = IDL:ODsample/exceptest/NOTFOUND:1.0  | 
 また、ゼロ除算例外を行うサンプルプログラムを実行すると、以下のようなメッセージが出力されますが、これらはサンプルプログラムの出力であり、システムやCORBAサービスで異常が発生したことによるものではありません。
| 
 項  | 
 サンプルプログラム名  | 
| 
 出力メッセージ  | 
| 
 1  | 
 CalcSample/c  | 
| 
 env_check: ODdemo_calculator_calculate [IDL:ODdemo/calculator/ZEROPARAM:1.0]fails  | 
| 
 2  | 
 CalcSample/c++  | 
| 
 exception-id = IDL:ODdemo/calculator/ZEROPARAM:1.0  | 
| 
 3  | 
 CalcSample/COBOL  | 
| 
 USER-EXCEPTION: ODdemo_calculator_calculate 
ID: IDL:ODdemo/calculator/ZEROPARAM:1.0  | 
注6) 英語版のCOBOLの場合、simple_e.wuを指定してください。
注7) COBOL言語の共用体型のサンプルプログラムのコンパイル時に、JMN2232I-Wメッセージが出力されることがありますが、共用体にデータ長の異なるメンバが存在することを示すメッセージであり、動作上は問題ありません。
INTF_A.cbl 215: JMN2232I-W  Length of redefining item must not exceed length of redefined item. 
 Redefining item overlaps no other items than ones specified  explicitly.
(2)その他(データ入力)
 データ入力機能を持つサンプルプログラムとして、simple_cppの実行例を説明します。
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/simple_cpp
 - サーバ、およびクライアントアプリケーションを作成します。(注1) 
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - サーバアプリケーションをバックグラウンドで実行します。
 intf1_s &
 - クライアントアプリケーションを実行します。
 intf1_c
 input>  <数値を入力します>
 <実行結果が出力されます>
 - サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) C++言語のサンプルプログラムのコンパイル時に、以下のような警告メッセージが出力されることがありますが、動作上は問題ありません。

 UX:make: WARNING: predecessor cycle (simple_stub_c++.o)

 xxx.C: In function `void _dt_intf1 (void *)':
 xxx.C:xx: warning: ...
(3) POA インタフェース


 Linuxでは使用できません。
 POAインタフェースサンプルプログラムの実行例として、DefaultServantの実行手順を説明します。(注1)
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/POA/C++/01_DefaultServant
 - サーバ、およびクライアントアプリケーションを作成します。
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - サーバアプリケーションを実行します。
 exec-SV
 - クライアントアプリケーションを実行するウインドウをサーバと同じディレクトリへ移動します。
 - クライアントアプリケーションを実行します。
 exec-CL
 <実行結果が出力されます>
 - サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) その他のC++POAサンプルプログラムも同様の手順で実行します。
(4)プロセスバインド
 プロセスバインドのサンプルプログラムの実行方法として、ssn_sample2の実行例を説明します。
 また、ワークユニット上で動作させる場合についても説明します。
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/complex/samplelist.C++/ssn/ssn_sample2
 - サーバ、およびクライアントアプリケーションを作成します。
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - ワークユニット上で動作させる場合と動作させない場合に分けて以下に説明します。
<ワークユニット上で動作させない場合)>
サーバアプリケーションをバックグラウンドで4回実行します。
 simple_s &
 simple_s &
 simple_s &
 simple_s &
<ワークユニット上で動作させる場合>
1) ワークユニットの起動に必要なワークユニット定義を登録します。
  isaddwudef simple.wu
2) ワークユニットを起動します。
  isstartwu ODSAMPLE
 - クライアントアプリケーションを実行します。(注1)
 simple_c
 <実行結果が表示されます>
 - サーバアプリケーションを終了させます。
ワークユニット上で動作させていない場合は、以下の操作を行います。(注2)
 odcntlque -s IMPL_SSNSAMPLE2
ワークユニット上で動作させている場合は、以下の操作を行います。
1) ワークユニットを停止します。
  isstopwu ODSAMPLE
2) 不要となったサンプルプログラムのワークユニット定義を削除します。
  isdelwudef ODSAMPLE
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) ssn_sample2のサンプルプログラムを実行すると、以下のようなメッセージが出力されますが、これらはサンプルプログラムの出力であり、システムやCORBAサービスで異常が発生したことによるものではありません。
| 
 項  | 
 サンプルプログラム名  | 
| 
 出力メッセージ  | 
| 
 1  | 
 complex/samplelist.C++/ssn/ssn_sample2  | 
| 
 SystemException raised! 
exception-id = IDL:CORBA/StExcep/INV_OBJREF:1.0 
minor = 0x464a0928  | 
注2) odcntlqueコマンドの引数には実行しているサーバアプリケーションのインプリメンテーションリポジトリIDを指定してください。
 本項では、Java言語のサンプルプログラムの実行手順について説明します。
| 
 種別  | 
 サブディレクトリ  | 
| 
 各種データ型  | 
 complex/samplelist.Java/data/*  | 
| 
 POAインタフェース  | 
 POA/java_1_4/*  | 
| 
 四則演算  | 
 CalcSample/java  | 
| 
 その他  | 
 java  | 

 Java言語のCORBAアプリケーションをコンパイル、実行するためには、環境設定を行う必要があります。環境設定については、“CORBAアプリケーションの実行”を参照してください。なお、環境設定を行わない場合、サンプルプログラムを正常に動作させることはできません。
(1)各種データ型、POAインタフェース
 各種データ型、POAインタフェースのサンプルプログラムの実行方法として、complex/samplelist.Java/data/arrayの実行例を説明します。
 また、ワークユニット上で動作させる場合についても説明します。
- 環境変数CLASSPATHを設定します。$OD_HOMEについては備考を参照してください。
 CLASSPATH=.:$OD_HOME/etc/class/ODjava4.jar:$CLASSPATH
 export  CLASSPATH
 - 環境変数LD_LIBRARY_PATHを設定します。$OD_HOMEについては備考を参照してください。
 LD_LIBRARY_PATH=$OD_HOME/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
 - 環境変数PATHを設定します。
 使用するJDK/JREのディレクトリを指定します。
 PATH=$JAVA_HOME/bin:$PATH
 export PATH
 - 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/complex/samplelist.Java/data/array
 - サーバ、およびクライアントアプリケーションを作成します。
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - ワークユニット上で動作させる場合と動作させない場合に分けて以下に説明します。
<各種データ型(ワークユニット上で動作させない場合)、POAインタフェース>
サーバアプリケーションを実行します。
 exec-SV
<各種データ型(ワークユニット上で動作させる場合)>
1) simple.wuの以下の項目を動作環境に合わせます。
  [Control Option]
  Path:使用するJDK/JREのディレクトリに修正します。
2) ワークユニットの起動に必要なワークユニット定義を登録します。
  isaddwudef simple.wu
3) ワークユニットを起動します。
  isstartwu ODSAMPLE
 - 別端末を起動し、1.および2.の手順を行った後、クライアントアプリケーションを実行します。
 exec-CL
 <実行結果が表示されます>
 - サーバアプリケーションを終了させます。
ワークユニット上で動作させている場合は、以下の操作を行います。
1) ワークユニットを停止します。
  isstopwu ODSAMPLE
2) 不要となったサンプルプログラムのワークユニット定義を削除します。
  isdelwudef ODSAMPLE
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
(2)四則演算
 ここでは、CalcSample/javaの実行例を説明します。Windows(R)クライアントマシン上にはNetscape NavigatorまたはInternet ExplorerにJBKプラグインをインストールしておいてください。
[Solaris/Linuxサーバ]
- 以下のディレクトリへ現ディレクトリを移動します。(注1)
 cd $SAMPLES/CalcSample/c
 - サーバアプリケーションを作成します。(注2)
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - サーバアプリケーションをバックグラウンドで実行します。
 simple_s &
 - 以下のディレクトリへ現ディレクトリを移動します。
 cd ../java
 - クライアントアプリケーションを作成します。
 make 
[Windows(R)クライアント]
- Solaris/Linuxサーバの$SAMPLES/CalcSample/javaディレクトリ配下(サブディレクトリ含む)にあるすべてのファイルをWindows(R)クライアントへ転送します。その際、Windows(R)クライアントのサブディレクトリ配下の構成、およびディレクトリ名(大文字/小文字)は、Solaris/Linuxサーバと同一にする必要があります。
以下にftpを使用したときの例を示します。(注3)
Windows(R)クライアントの格納先のディレクトリ配下にODdemoディレクトリを作成して、ODdemoディレクトリの下にはcalculatorPackageディレクトリをあらかじめ作成しておいてください。
 ftp <Solaris/Linuxサーバ名> 
 : 
 cd $SAMPLES/CalcSample/java 
 mget * 
 lcd ODdemo
 cd ODdemo 
 mget * 
 lcd calculatorPackage
 cd calculatorPackage 
 mget *
 - バッチファイルを実行してJavaのソースをコンパイルします。
 apl-compile.bat
 - 作成したクライアントアプリケーションのjarアーカイブファイル(client2.jar)を作成します。
 jar cvf client2.jar *.class ODdemo/*.class ODdemo/calculatorPackage/*.class
 - Javaライブラリ(ODjava4.jar、およびclient2.jar)に権限を設定します。
詳細については、“Javaライブラリに対する権限の設定”を参照してください。
 - ブラウザを起動します。
エクスプローラからCalcSample.htmlをダブルクリックして、ブラウザを起動します。
 - 入力画面から数値や文字を入力して"OK"をクリックします。
 
[Solaris/Linuxサーバ]
- サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) 本サンプルプログラムを実行するときは、以下のどちらかのサーバアプリケーションを使用します。
 ・CalcSample/c
 ・CalcSample/c++
注2) C++言語のサンプルプログラムのコンパイル時に、以下のような警告メッセージが出力されることがありますが、動作上は問題ありません。

 "simple_stub_c++.C", line 172: warning:_result used before set

 xxx.C: In function `void _dt_intf1 (void *)':
 xxx.C:xx: warning: ...
注3) Windows(R)クライアントへファイルを転送するときは以下のように指定します。
 "すべてのファイル": ネットワークASCIIで転送
(3)その他
 ここでは、javaの実行例を説明します。Windows(R)クライアントマシン上にはNetscape NavigatorまたはInternet ExplorerにJBKプラグインをインストールしておいてください。
[Solaris/Linuxサーバ]
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/java
 - サーバアプリケーション側のディレクトリへ現ディレクトリを移動します。
 cd server
 - サーバアプリケーションを作成します。
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - サーバアプリケーションをバックグラウンドで実行します。
 sample_s &
 <初期化処理が完了した旨のメッセージが表示されます>
 - クライアントアプリケーション側のディレクトリへ現ディレクトリを移動します。
 cd ../client
 - クライアントアプリケーションを作成します。
 make 
[Windows(R)クライアント] 
- Solaris/Linuxサーバの$SAMPLES/java/clientディレクトリ下にあるすべてのファイルをWindows(R)クライアントへ転送します。以下にftpを使用したときの例を示します。(注1)
Windows(R)クライアントの格納先のディレクトリ配下にはあらかじめAppOpSampleディレクトリを作成しておいてください。
 ftp <Solaris/Linuxサーバ名>
 : 
 cd $SAMPLES/java/client
 mget * 
 lcd AppOpSample
 cd AppOpSample 
 mget *
 - 1.の転送先と同じディレクトリの配下に、C:\Interstage\ODWIN\src\sample\Java\Clientディレクトリ配下のファイルをコピーします。
 - バッチファイルを実行してJavaのソースをコンパイルします。
 apl-compile.bat
 - 作成したクライアントアプリケーションのjarアーカイブファイル(Client.jar)を作成します。
 jar cvf Client.jar *.class AppOpSample/*.class
 - Javaライブラリ(ODjava4.jar、およびclient2.jar)に権限を設定します。
詳細については、“Javaライブラリに対する権限の設定”を参照してください。
 - ブラウザを起動します。
エクスプローラからAppSample.htmlをダブルクリックして、ブラウザを起動します。
 - 入力画面から数値や文字を入力して"OK"をクリックします。
 
[Solaris/Linuxサーバ]
- サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) Windows(R)クライアントへファイルを転送するときは以下のように指定します。
 "すべてのファイル": ネットワークASCIIで転送
 本項では、OLEインタフェースを用いたサンプルプログラムの実行手順について説明します。
| 
 種別  | 
 サブディレクトリ  | 
| 
 四則演算  | 
 CalcSample/ole  | 
| 
 その他  | 
 ole  | 
(1)四則演算
 ここでは、CalcSample/oleの実行例を説明します。
[Solaris/Linuxサーバ]
- 以下のディレクトリへ現ディレクトリを移動します。(注1)
 cd $SAMPLES/CalcSample/c
 - サーバアプリケーションを作成します。(注2) 
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - サンプルプログラムのインタフェース情報をインタフェースリポジトリへ登録します。
 IDLc -R -create simple.idl
 - サーバアプリケーションを実行します。
 simple_s 
[Windows(R)クライアント]
- Solaris/Linuxサーバの $SAMPLES/CalcSample/oleディレクトリ下にあるForm1.frmファイルをWindows(R)クライアントへ転送します。以下にftp を使用したときの例を示します。(注3)
 ftp <Solaris/Linuxサーバ名>
 :
 cd $SAMPLES/CalcSample/ole
 get Form1.frm
 - エクスプローラから、転送したForm1.frmをダブルクリックしてVisual Basicを起動します。(注4)
 - Visual Basicのメニューバーから[実行]−[開始]を選択します。
 - 表示されたVisual Basicのフォーム中の入力フィールド"Input A"、"Input B"に数値を入力します。(注5)
 - STARTボタンをクリックします。
 <実行結果が表示されます> 
[Solaris/Linuxサーバ]
- サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインタフェース情報をインタフェースリポジトリから削除します。
 IDLc -R -delete simple.idl
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) サーバアプリケーションのサンプルプログラムは、CalcSample/cまたはCalcSample/c++を用います。
注2) C++言語のサンプルプログラムのコンパイル時に、以下のような警告メッセージが出力されることがありますが、動作上は問題ありません。

 "simple_stub_c++.C", line 172: warning:_result used before set

 xxx.C: In function `void _dt_intf1 (void *)':
 xxx.C:xx: warning: ...
注3) Windows(R)クライアントへファイルを転送するときは以下のように指定します。
 "Form1.frm": ネットワークASCIIで転送
注4) Visual Basic 5.0を使用してください。
注5) 入力フィールド"Input B"に0(ゼロ)を入力すると、以下のようなゼロ除算例外が発生した旨のメッセージが出力されます。
 CORBA User Exception: [IDL:ODdemo/calculator/ZEROPARAM:1.0]
(2)その他
 ここでは、oleの実行例を説明します。
[Solaris/Linuxサーバ]
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/ole
 - サーバアプリケーションを作成します。
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - サーバアプリケーションを実行します。
 sample_s
 <初期化処理が完了した旨のメッセージが表示されます> 
[Windows(R)クライアント] 
- エクスプローラからC:\Interstage\ODWIN\src\sample\ole\Sample.frmをダブルクリックしてVisual Basicを起動します。(注1)
 - 起動したVisual Basicのメニューバーから[実行]−[開始]を選択します。
 - 表示されたVisual Basicのフォーム中の入力フィールド"Data A", "Data B"に数値を入力します。
 - STARTボタンをクリックします。
 <実行結果が表示されます>
 - ENDボタンをクリックすると起動したVisual Basicのフォームが終了します。
 
[Solaris/Linuxサーバ]
- サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) Visual Basic 5.0を使用してください。
 本項では、動的起動インタフェースを用いたサンプルプログラムの実行手順について説明します。
| 
 種別  | 
 サブディレクトリ  | 
| 
 動的起動インタフェース  | 
 complex/samplelist.C/dii/* 
complex/samplelist.C++/dii/* 
complex/samplelist.C_nt/dii/* 
complex/samplelist.C++_nt/dii/*  | 
| 
 四則演算  | 
 CalcSample/c_dii 
CalcSample/c++_dii  | 
(1)動的起動インタフェース
 ここでは、complex/samplelist.C/dii/dyn1の実行例を説明します。(注1)
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/complex/samplelist.C/dii/dyn1
 - サーバ、およびクライアントアプリケーションを作成します。(注2) 
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - サーバアプリケーションをバックグラウンドで実行します。(注3) 
 simple_server &
 - クライアントアプリケーションを実行します。(注1)(注4) 
 simple_client
 <実行結果が表示されます>
 - サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) complex/samplelist.C++/dii/dyn3およびcomplex/samplelist.C++_nt/dii/dyn3のサンプルプログラムでは、クライアントアプリケーションの実行時に以下のようなエラーメッセージが表示されることがありますが、クライアントアプリケーションの実行時のタイミングによるもので、動作上は問題ありません。
 error poll-response
注2) C++言語のサンプルプログラムのコンパイル時に、以下のような警告メッセージが出力されることがありますが、動作上は問題ありません。

 UX:make: WARNING: predecessor cycle (simple_stub_c++.o)
 "simple_stub_c++.C", line 159: warning:_result used before set

 xxx.C: In function `void _dt_intf1 (void *)':
 xxx.C:xx: warning: ...
注3) C++言語のサンプルプログラムのサーバアプリケーション名は"simple_s"です。
注4) C++言語のサンプルプログラムのクライアントアプリケーション名は"simple_c"です。
(2)四則演算
 ここでは、CalcSample/c_diiの実行例を説明します。
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/CalcSample/c_dii
 - クライアントアプリケーションを作成します。(注1)
 make
 - サーバアプリケーションのインタフェース情報をインタフェースリポジトリへ登録、およびサンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - 以下のディレクトリへ現ディレクトリを移動します。
 cd ../c
 - サーバアプリケーションを作成します。(注1)
 make
 - サーバアプリケーションをバックグラウンドで実行します。(注2) 
 simple_s &
 - 以下のディレクトリへ現ディレクトリを移動します。
 cd ../c_dii
 - クライアントアプリケーションを実行します。(注3)
 simple_c
 <実行結果が表示されます>
 - サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) Linuxシステムでは、C++言語のサンプルプログラムのコンパイル時に、以下のような警告メッセージが出力されることがありますが、動作上は問題ありません。
 simple_c.c:77: warning: choosing `CORBA::ParDescriptionSeq_var::operator CORBA::ParDescriptionSeq *& ()' over `CORBA::ParDescriptionSeq_var::operator CORBA::ParDescriptionSeq * () const'
 simple_c.c:77: warning: for conversion from `CORBA::ParDescriptionSeq_var' to `CORBA::ParDescriptionSeq *'
 simple_c.c:77: warning: because conversion sequence for the argument is better
注2) CalcSample/c_diiのときは、CalcSample/cのサーバアプリケーションを用います。
 CalcSample/c++_diiのときは、CalcSample/c++のサーバアプリケーションを用います。
注3) CalcSample/c++_diiのサンプルプログラムでは、クライアントアプリケーションの実行時に以下のようなエラーメッセージが出力されることがありますが、クライアントアプリケーションの実行時のタイミングによるもので、動作上は問題ありません。
 error poll-response
 本項では、動的スケルトンインタフェースを用いたサンプルプログラムの実行手順について説明します。


 Linuxでは使用できません。
| 
 種別  | 
 サブディレクトリ  | 
| 
 動的スケルトンインタフェース  | 
 complex/samplelist.C/dsi/dsi 
complex/samplelist.C++/dsi/dsi 
complex/samplelist.C_nt/dsi/dsi 
complex/samplelist.C++_nt/dsi/dsi  | 
| 
 四則演算  | 
 CalcSample/c_dsi 
CalcSample/c++_dsi 
CalcSample/c++poa_dsi  | 
(1)動的スケルトンインタフェース
 ここでは、complex/samplelist.C/dsi/dsiの実行例を説明します。
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/complex/samplelist.C/dsi/dsi
 - サーバ、およびクライアントアプリケーションを作成します。
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - サーバアプリケーションをバックグラウンドで実行します。
 simple_s &
 - クライアントアプリケーションを実行します。
 simple_c
 <実行結果が表示されます>
 - サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
(2)四則演算
 ここでは、CalcSample/c_dsiの実行例を説明します。
- サンプルプログラムのディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/CalcSample/c_dsi
 - サーバアプリケーションを作成します。
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - サーバアプリケーションをバックグラウンドで実行します。(注1)
 simple_s &
 - 以下のディレクトリへ現ディレクトリを移動します。
 cd ../c
 - クライアントアプリケーションを作成します。
 make
 - クライアントアプリケーションを実行します。(注2) 
 simple_c
 <実行結果が表示されます>(注3)
 - 以下のディレクトリへ現ディレクトリを移動します。
 cd ../c_dsi
 - サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) POAインタフェースを実行する場合は、以下のシェルを実行してください。
  exec-SV
注2) CalcSample/c_dsiのときはCalcSample/cのクライアントアプリケーションを用います。
 CalcSample/c++_dsiのときはCalcSample/c++のクライアントアプリケーションを用います。
 CalcSample/c++poa_dsiのときはCalcSample/c++のクライアントアプリケーションを用います。
注3) クライアントアプリケーションの実行結果として、以下のようなメッセージが出力されますが、これらはサンプルプログラムの出力であり、システムやCORBAサービスで異常が発生したことによるものではありません。
| 
 項  | 
 サンプルプログラム名  | 
| 
 出力メッセージ  | 
| 
 1  | 
 CalcSample/c_dsi  | 
| 
 env_check: ODdemo_calculator_calculate [IDL:ODdemo/calculator/ZEROPARAM:1.0]fails  | 
 本項では、ネーミングサービスのサンプルプログラムの実行手順について説明します。
| 
 種別  | 
 サブディレクトリ  | 
| 
 ネーミングサービス  | 
 complex/samplelist.C/naming/* 
complex/samplelist.C++/naming/*  | 
(1)listメソッド
 listメソッドのサンプルプログラムとして、complex/samplelist.C/naming/listの実行例を説明します。
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/complex/samplelist.C/naming/list
 - クライアントアプリケーションを作成します。
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - クライアントアプリケーションを実行します。
 simple_c
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
(2)bind, resolve, destroyメソッド
 bind, resolve, destroyメソッドのサンプルプログラムとして、complex/samplelist.C/naming/bindの実行例を説明します。
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/complex/samplelist.C/naming/bind
 - クライアントアプリケーションを作成します。
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - クライアントアプリケーションを実行します。(注1) 
 simple_c
 - 以下のディレクトリへ現ディレクトリを移動します。
 cd ../resolve
 - クライアントアプリケーションを作成します。
 make
 - クライアントアプリケーションを実行します。(注1) 
 simple_c
 - 以下のディレクトリへ現ディレクトリを移動します。
 cd ../destroy
 - クライアントアプリケーションを作成します。
 make
 - クライアントアプリケーションを実行します。(注1) 
 simple_c
 - 以下のディレクトリへ現ディレクトリを移動します。
 cd ../bind
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) サンプルプログラムのbind,resolve,destroyが正常に動作したときは、何も出力されません。
 本項では、インタフェースリポジトリのサンプルプログラムの実行手順について説明します。
| 
 種別  | 
 サブディレクトリ  | 
| 
 インタフェースリポジトリ  | 
 irsample/*  | 
 ここでは、irsample/csample1での実行例で説明します。
- サンプルプログラムのディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/irsample/csample1
 - make.sh コマンドを実行して、サンプルプログラムのインタフェース情報をインタフェースリポジトリへ登録、およびサンプルプログラムのコンパイルを実行します。(注1) 
 make.sh
 - irsample1 コマンドを実行します。
 irsample1
 <実行結果が表示されます> 
注1) 初回実行(インタフェース情報登録)時にメッセージod51006が表示されますが、動作上は問題ありません。
 本項では、Windows(R)クライアントのサンプルプログラムの実行手順について説明します。
| 
 種別  | 
 サブディレクトリ  | 
| 
 各種データ型  | 
 complex/samplelist.C/data_win/*  | 
 ここでは、complex/samplelist.C/data_win/anyでの実行例で説明します。Windows(R)クライアントでは、Microsoft(R) Visual C++(R) .NET Standardを使用します。
[Solaris/Linuxサーバ]
- 以下のディレクトリへ現ディレクトリを移動します。
 cd $SAMPLES/complex/samplelist.C/data_win/any
 - IDL コンパイラを実行してスタブとスケルトンを作成します。
 IDLc simple.idl
 - $SAMPLES/complex/samplelist.C/data_win ディレクトリ下のサンプルプログラムに対応したサーバアプリケーションのサンプルディレクトリへ現ディレクトリを移動します。(注1) 
 cd ../../data/any
 - サーバアプリケーションを作成します。
 make
 - サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
 register
 - サーバアプリケーションを実行します。
 simple_s 
[Windows(R)クライアント] 
- Solaris/Linuxサーバの$SAMPLES/complex/samplelist.C/data_win/anyディレクトリ下のすべてのファイルをWindows(R)クライアントへ転送します。以下にftpを使用したときの例を示します。(注2) 
 ftp <Solaris/Linuxサーバ名>
 :
 get simple.h 
 : 
 mget *.mak 
 bin 
 mget *.mdp
 - エクスプローラから、転送したプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++(R)を起動します。このとき、「変換しますか?」という問い合わせがありますので、「はい」を選択してプロジェクト形式を変換します。
 - 起動されたVisual C++(R)の画面から"ソリューション エクスプローラ"をクリックした後、メインプロジェクトフォルダ(実行例では"any_c"と表示)をクリックします。simple_c.c 以外のファイルが表示されたときは、simple_c.cを除くすべてのファイルを、メニューバーから[編集]−[削除]を選択して削除します。
 - 起動されたVisual C++(R)のメニューバーから「プロジェクト」-「既存項目の追加」を選択します。
 - ダイアログボックス中のファイルの種類から"すべてのファイル"を選択します。
 - ダイアログボックスに表示されたファイル中から以下のファイルを"追加"します。
・simple.h
・simple_cdr.h
・simple_cdr.c
・simple_stub.c
 - 起動されたVisual C++(R)のメニューバーから[ビルド]−[ソリューションのビルド]を選択してクライアントアプリケーションを作成します。(注3)
 - クライアントアプリケーションの作成が正常終了した後、メニューバーから「デバッグ」-「デバッグなしで開始」を選択します。(注4)
 <実行結果のメッセージボックスが表示されます> 
[Solaris/Linuxサーバ]
- サーバアプリケーションを終了させます。
 - 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
 unregister 
注1) サーバアプリケーションは、$SAMPLES/complex/samplelist.C/data_winディレクトリ下のディレクトリ名と$SAMPLES/complex/samplelist.C/dataディレクトリ下のディレクトリ名が一致するサンプルプログラムを使用してください。
注2) Windows(R)クライアントへファイルを転送するときは以下のように指定します。
 "プロジェクトワークスペースファイル": バイナリで転送
 "その他のファイル": ネットワークASCIIで転送
注3) サンプルプログラムのコンパイル時に警告メッセージが出力されることがありますが、動作上は問題ありません。
注4) exceptionのサンプルプログラムを実行すると、以下のようなメッセージが出力されます。これらはサンプルプログラムの出力であり、システムやCORBAサービスの異常発生によるものではありません。
| 
 項  | 
 サンプルプログラム名  | 
| 
 出力メッセージ  | 
| 
 1  | 
 complex/samplelist.C/data_win/exception  | 
| 
 id = [IDL:ODsample/exceptest/NOT_FOUND:1.0] 
IDL:ODsample/exceptest/NOT_FOUND:1.0  | 
All Rights Reserved, Copyright(C) 富士通株式会社 2007