Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

付録E サンプルプログラム(Solaris(TM) Operating Environment/Linux)> E.1 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

(1)各種データ型、四則演算、その他(表示)

 各種データ型、四則演算、その他(表示)のサンプルプログラムの実行方法として、simpleの実行例を説明します。
 また、各種データ型においてワークユニット上で動作させる場合についても説明します。

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/simple
  2. サーバ、およびクライアントアプリケーションを作成します。(注1) (注2)
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
    COBOLサーバアプリケーションをワークユニット上で動作させる場合は、インプリメンテ-ションリポジトリ情報を登録する際にインタフェース定義のパスを絶対パスに修正する必要があります。register内でOD_impl_instコマンドによってインプリメンテーションリポジトリ情報が登録されていますが、OD_impl_instコマンドのaxオプションの引数に指定されている定義ファイルをエディタで開き、インターフェース定義に指定されているライブラリのパスを絶対パスに変更してください。(注3)
     register
  4. ワークユニット上で動作させる場合と動作させない場合に分けて以下に説明します。
    <各種データ型(ワークユニット上で動作させない場合)、四則演算、その他(表示)>
    サーバアプリケーションをバックグラウンドで実行します。(注4)
     simple_s &
    <各種データ型(ワークユニット上で動作させる場合)>
    1) ワークユニットの起動に必要なワークユニット定義を登録します。(注6)
      isaddwudef simple.wu
    2) ワークユニットを起動します。
      isstartwu ODSAMPLE
  5. クライアントアプリケーションを実行します。(注4)(注5)
     simple_c
     <実行結果が表示されます>
  6. サーバアプリケーションを終了させます。
    ワークユニット上で動作させている場合は、以下の操作を行います。
    1) ワークユニットを停止します。
      isstopwu ODSAMPLE
    2) 不要となったサンプルプログラムのワークユニット定義を削除します。
      isdelwudef ODSAMPLE
  7. 不要となったサンプルプログラムのインプリメンテーションリポジトリ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 OEシステムでは、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を指定してください。

(2)その他(データ入力)

 データ入力機能を持つサンプルプログラムとして、simple_cppの実行例を説明します。

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/simple_cpp
  2. サーバ、およびクライアントアプリケーションを作成します。(注1)
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. サーバアプリケーションをバックグラウンドで実行します。
     intf1_s &
  5. クライアントアプリケーションを実行します。
     intf1_c
     input> <数値を入力します>
     <実行結果が出力されます>
  6. サーバアプリケーションを終了させます。
  7. 不要となったサンプルプログラムのインプリメンテーションリポジトリ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 インタフェース

 POAインタフェースサンプルプログラムの実行例として、DefaultServantの実行手順を説明します。(注1)

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/POA/C++/01_DefaultServant
  2. サーバ、およびクライアントアプリケーションを作成します。
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. サーバアプリケーションを実行します。
     exec-SV
  5. クライアントアプリケーションを実行するウインドウをサーバと同じディレクトリへ移動します。
  6. クライアントアプリケーションを実行します。
     exec-CL
     <実行結果が出力されます>
  7. サーバアプリケーションを終了させます。
  8. 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
     unregister

注1) その他のC++POAサンプルプログラムも同様の手順で実行します。

(b)Java言語のサンプルプログラム

 本項では、Java言語のサンプルプログラムの実行手順について説明します。

種別

サブディレクトリ

各種データ型

complex/samplelist.Java/data/*

POAインタフェース

POA/java/*

POA/java_1_4/* (JDK/JRE1.4用)

四則演算

CalcSample/java

その他

java


 Java言語のCORBAアプリケーションをコンパイル、実行するためには、環境設定を行う必要があります。環境設定については、“CORBAアプリケーションの実行”を参照してください。なお、環境設定を行わない場合、サンプルプログラムを正常に動作させることはできません。

(1)各種データ型、POAインタフェース

 各種データ型、POAインタフェースのサンプルプログラムの実行方法として、complex/samplelist.Java/data/arrayの実行例を説明します。
 また、ワークユニット上で動作させる場合についても説明します。

  1. 環境変数CLASSPATHを設定します。$OD_HOMEについては備考を参照してください。
    <JDK/JRE 1.1.8での運用時>
     CLASSPATH=.:$OD_HOME/etc/class/ODjava.jar:$CLASSPATH
     export CLASSPATH
    <JDK/JRE1.2.2またはJDK/JRE1.3での運用時>
     CLASSPATH=.:$OD_HOME/etc/class/ODjava2.jar:$CLASSPATH
     export CLASSPATH
    <JDK/JRE1.4での運用時>
     CLASSPATH=.:$OD_HOME/etc/class/ODjava4.jar:$CLASSPATH
     export CLASSPATH
  2. 環境変数LD_LIBRARY_PATHを設定します。$OD_HOMEについては備考を参照してください。
     LD_LIBRARY_PATH=$OD_HOME/lib:$LD_LIBRARY_PATH
     export LD_LIBRARY_PATH
  3. 環境変数PATHを設定します。
     使用するJDK/JREのディレクトリを指定します。
     PATH=$JAVA_HOME/bin:$PATH
     export PATH
  4. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/complex/samplelist.Java/data/array
  5. サーバ、およびクライアントアプリケーションを作成します。
     make
  6. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  7. ワークユニット上で動作させる場合と動作させない場合に分けて以下に説明します。
    <各種データ型(ワークユニット上で動作させない場合)、POAインタフェース>
    サーバアプリケーションを実行します。
     exec-SV
    <各種データ型(ワークユニット上で動作させる場合)>
    1) simple.wuの以下の項目を動作環境に合わせます。
      [Control Option]
      Path:使用するJDK/JREのディレクトリに修正します。
      [Application Program]
      CLASSPATH for Application(2つ目):使用するJDK/JREにしたがってJavaライブラリ(ODjava2.jar)を修正します。
    2) ワークユニットの起動に必要なワークユニット定義を登録します。
      isaddwudef simple.wu
    3) ワークユニットを起動します。
      isstartwu ODSAMPLE
  8. 別端末を起動し、1.および2.の手順を行った後、クライアントアプリケーションを実行します。
     exec-CL
     <実行結果が表示されます>
  9. サーバアプリケーションを終了させます。
    ワークユニット上で動作させている場合は、以下の操作を行います。
    1) ワークユニットを停止します。
      isstopwu ODSAMPLE
    2) 不要となったサンプルプログラムのワークユニット定義を削除します。
      isdelwudef ODSAMPLE
  10. 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
     unregister

(2)四則演算

 ここでは、CalcSample/javaの実行例を説明します。Windows(R)クライアントマシン上にはNetscape NavigatorまたはInternet ExplorerにJBKプラグインをインストールしておいてください。

[Solaris OE/Linuxサーバ]

  1. 以下のディレクトリへ現ディレクトリを移動します。(注1)
     cd $SAMPLES/CalcSample/c
  2. サーバアプリケーションを作成します。(注2)
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. サーバアプリケーションをバックグラウンドで実行します。
     simple_s &
  5. 以下のディレクトリへ現ディレクトリを移動します。
     cd ../java
  6. クライアントアプリケーションを作成します。
     make

[Windows(R)クライアント]

  1. Solaris OE/Linuxサーバの$SAMPLES/CalcSample/javaディレクトリ配下(サブディレクトリ含む)にあるすべてのファイルをWindows(R)クライアントへ転送します。その際、Windows(R)クライアントのサブディレクトリ配下の構成、およびディレクトリ名(大文字/小文字)は、Solaris OE/Linuxサーバと同一にする必要があります。
    以下にftpを使用したときの例を示します。(注3)
    Windows(R)クライアントの格納先のディレクトリ配下にODdemoディレクトリを作成して、ODdemoディレクトリの下にはcalculatorPackageディレクトリをあらかじめ作成しておいてください。
     ftp <Solaris OE/Linuxサーバ名>
     :
     cd $SAMPLES/CalcSample/java
     mget *
     lcd ODdemo
     cd ODdemo
     mget *
     lcd calculatorPackage
     cd calculatorPackage
     mget *
  2. バッチファイルを実行してJavaのソースをコンパイルします。
     apl-compile.bat
  3. 作成したクライアントアプリケーションのjarアーカイブファイル(client2.jar)を作成します。
    <JDK/JRE1.2.2、JDK/JRE1.3またはJDK/JRE1.4での運用時のみ>
     jar cvf client2.jar *.class ODdemo/*.class ODdemo/calculatorPackage/*.class
  4. Javaライブラリ(ODjava2.jarまたはODjava4.jar、およびclient2.jar)に権限を設定します。
    <JDK/JRE1.2.2、JDK/JRE1.3またはJDK/JRE1.4での運用時のみ>
    詳細については、“Javaライブラリに対する権限の設定”を参照してください。
  5. ブラウザを起動します。
    <JDK/JRE 1.1.8での運用時>
    エクスプローラからCalcSample.htmlをダブルクリックして、ブラウザを起動します。
    <JDK/JRE1.2.2、JDK/JRE1.3またはJDK/JRE1.4での運用時>
    エクスプローラからCalcSample2.htmlをダブルクリックして、ブラウザを起動します。
  6. 入力画面から数値や文字を入力して"OK"をクリックします。

[Solaris OE/Linuxサーバ]

  1. サーバアプリケーションを終了させます。
  2. 不要となったサンプルプログラムのインプリメンテーションリポジトリ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 OE/Linuxサーバ]

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/java
  2. サーバアプリケーション側のディレクトリへ現ディレクトリを移動します。
     cd server
  3. サーバアプリケーションを作成します。
     make
  4. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  5. サーバアプリケーションをバックグラウンドで実行します。
     sample_s &
     <初期化処理が完了した旨のメッセージが表示されます>
  6. クライアントアプリケーション側のディレクトリへ現ディレクトリを移動します。
     cd ../client
  7. クライアントアプリケーションを作成します。
     make

[Windows(R)クライアント]

  1. Solaris OE/Linuxサーバの$SAMPLES/java/clientディレクトリ下にあるすべてのファイルをWindows(R)クライアントへ転送します。以下にftpを使用したときの例を示します。(注1)
    Windows(R)クライアントの格納先のディレクトリ配下にはあらかじめAppOpSampleディレクトリを作成しておいてください。
     ftp <Solaris OE/Linuxサーバ名>
     :
     cd $SAMPLES/java/client
     mget *
     lcd AppOpSample
     cd AppOpSample
     mget *
  2. 1.の転送先と同じディレクトリの配下に、C:\Interstage\ODWIN\src\sample\Java\Clientディレクトリ配下のファイルをコピーします。
  3. バッチファイルを実行してJavaのソースをコンパイルします。
     apl-compile.bat
  4. 作成したクライアントアプリケーションのjarアーカイブファイル(Client.jar)を作成します。
    <JDK/JRE1.2.2、JDK/JRE1.3またはJDK/JRE1.4での運用時のみ>
     jar cvf Client.jar *.class AppOpSample/*.class
  5. Javaライブラリ(ODjava2.jarまたはODjava4.jar、およびclient2.jar)に権限を設定します。
    <JDK/JRE1.2.2、JDK/JRE1.3またはJDK/JRE1.4での運用時のみ>
    詳細については、“Javaライブラリに対する権限の設定”を参照してください。
  6. ブラウザを起動します。
    <JDK/JRE 1.1.8での運用時>
    エクスプローラからAppSample.htmlをダブルクリックして、ブラウザを起動します。
    <JDK/JRE1.2.2、JDK/JRE1.3またはJDK/JRE1.4での運用時>
    エクスプローラからAppSample2.htmlをダブルクリックして、ブラウザを起動します。
  7. 入力画面から数値や文字を入力して"OK"をクリックします。

[Solaris OE/Linuxサーバ]

  1. サーバアプリケーションを終了させます。
  2. 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
     unregister

注1) Windows(R)クライアントへファイルを転送するときは以下のように指定します。
 "すべてのファイル": ネットワークASCIIで転送

(c)OLEインタフェース

 本項では、OLEインタフェースを用いたサンプルプログラムの実行手順について説明します。

種別

サブディレクトリ

四則演算

CalcSample/ole

その他

ole

(1)四則演算

 ここでは、CalcSample/oleの実行例を説明します。

[Solaris OE/Linuxサーバ]

  1. 以下のディレクトリへ現ディレクトリを移動します。(注1)
     cd $SAMPLES/CalcSample/c
  2. サーバアプリケーションを作成します。(注2)
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. サンプルプログラムのインタフェース情報をインタフェースリポジトリへ登録します。
     IDLc -R -create simple.idl
  5. サーバアプリケーションを実行します。
     simple_s

[Windows(R)クライアント]

  1. Solaris OE/Linuxサーバの $SAMPLES/CalcSample/oleディレクトリ下にあるForm1.frmファイルをWindows(R)クライアントへ転送します。以下にftp を使用したときの例を示します。(注3)
     ftp <Solaris OE/Linuxサーバ名>
     :
     cd $SAMPLES/CalcSample/ole
     get Form1.frm
  2. エクスプローラから、転送したForm1.frmをダブルクリックしてVisual Basicを起動します。(注4)
  3. Visual Basicのメニューバーから[実行]−[開始]を選択します。
  4. 表示されたVisual Basicのフォーム中の入力フィールド"Input A"、"Input B"に数値を入力します。(注5)
  5. STARTボタンをクリックします。
     <実行結果が表示されます>

[Solaris OE/Linuxサーバ]

  1. サーバアプリケーションを終了させます。
  2. 不要となったサンプルプログラムのインタフェース情報をインタフェースリポジトリから削除します。
     IDLc -R -delete simple.idl
  3. 不要となったサンプルプログラムのインプリメンテーションリポジトリ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 OE/Linuxサーバ]

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/ole
  2. サーバアプリケーションを作成します。
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. サーバアプリケーションを実行します。
     sample_s
     <初期化処理が完了した旨のメッセージが表示されます>

[Windows(R)クライアント]

  1. エクスプローラからC:\Interstage\ODWIN\src\sample\ole\Sample.frmをダブルクリックしてVisual Basicを起動します。(注1)
  2. 起動したVisual Basicのメニューバーから[実行]−[開始]を選択します。
  3. 表示されたVisual Basicのフォーム中の入力フィールド"Data A", "Data B"に数値を入力します。
  4. STARTボタンをクリックします。
     <実行結果が表示されます>
  5. ENDボタンをクリックすると起動したVisual Basicのフォームが終了します。

[Solaris OE/Linuxサーバ]

  1. サーバアプリケーションを終了させます。
  2. 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
     unregister

注1) Visual Basic 5.0を使用してください。

(d)動的起動インタフェース

 本項では、動的起動インタフェースを用いたサンプルプログラムの実行手順について説明します。

種別

サブディレクトリ

動的起動インタフェース

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)

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/complex/samplelist.C/dii/dyn1
  2. サーバ、およびクライアントアプリケーションを作成します。(注2)
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. サーバアプリケーションをバックグラウンドで実行します。(注3)
     simple_server &
  5. クライアントアプリケーションを実行します。(注1)(注4)
     simple_client
     <実行結果が表示されます>
  6. サーバアプリケーションを終了させます。
  7. 不要となったサンプルプログラムのインプリメンテーションリポジトリ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の実行例を説明します。

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/CalcSample/c_dii
  2. クライアントアプリケーションを作成します。(注1)
     make
  3. サーバアプリケーションのインタフェース情報をインタフェースリポジトリへ登録、およびサンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. 以下のディレクトリへ現ディレクトリを移動します。
     cd ../c
  5. サーバアプリケーションを作成します。(注1)
     make
  6. サーバアプリケーションをバックグラウンドで実行します。(注2)
     simple_s &
  7. 以下のディレクトリへ現ディレクトリを移動します。
     cd ../c_dii
  8. クライアントアプリケーションを実行します。(注3)
     simple_c
     <実行結果が表示されます>
  9. サーバアプリケーションを終了させます。
  10. 不要となったサンプルプログラムのインプリメンテーションリポジトリ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

(e)動的スケルトンインタフェース

 本項では、動的スケルトンインタフェースを用いたサンプルプログラムの実行手順について説明します。

種別

サブディレクトリ

動的スケルトンインタフェース

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の実行例を説明します。

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/complex/samplelist.C/dsi/dsi
  2. サーバ、およびクライアントアプリケーションを作成します。
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. サーバアプリケーションをバックグラウンドで実行します。
     simple_s &
  5. クライアントアプリケーションを実行します。
     simple_c
     <実行結果が表示されます>
  6. サーバアプリケーションを終了させます。
  7. 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
     unregister

(2)四則演算

 ここでは、CalcSample/c_dsiの実行例を説明します。

  1. サンプルプログラムのディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/CalcSample/c_dsi
  2. サーバアプリケーションを作成します。
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. サーバアプリケーションをバックグラウンドで実行します。(注1)
     simple_s &
  5. 以下のディレクトリへ現ディレクトリを移動します。
     cd ../c
  6. クライアントアプリケーションを作成します。
     make
  7. クライアントアプリケーションを実行します。(注2)
     simple_c
     <実行結果が表示されます>(注3)
  8. 以下のディレクトリへ現ディレクトリを移動します。
     cd ../c_dsi
  9. サーバアプリケーションを終了させます。
  10. 不要となったサンプルプログラムのインプリメンテーションリポジトリ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

(f)ネーミングサービス

 本項では、ネーミングサービスのサンプルプログラムの実行手順について説明します。

種別

サブディレクトリ

ネーミングサービス

complex/samplelist.C/naming/*
complex/samplelist.C++/naming/*

(1)listメソッド

 listメソッドのサンプルプログラムとして、complex/samplelist.C/naming/listの実行例を説明します。

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/complex/samplelist.C/naming/list
  2. クライアントアプリケーションを作成します。
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. クライアントアプリケーションを実行します。
     simple_c
  5. 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
     unregister

(2)bind, resolve, destroyメソッド

 bind, resolve, destroyメソッドのサンプルプログラムとして、complex/samplelist.C/naming/bindの実行例を説明します。

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/complex/samplelist.C/naming/bind
  2. クライアントアプリケーションを作成します。
     make
  3. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  4. クライアントアプリケーションを実行します。(注1)
     simple_c
  5. 以下のディレクトリへ現ディレクトリを移動します。
     cd ../resolve
  6. クライアントアプリケーションを作成します。
     make
  7. クライアントアプリケーションを実行します。(注1)
     simple_c
  8. 以下のディレクトリへ現ディレクトリを移動します。
     cd ../destroy
  9. クライアントアプリケーションを作成します。
     make
  10. クライアントアプリケーションを実行します。(注1)
     simple_c
  11. 以下のディレクトリへ現ディレクトリを移動します。
     cd ../bind
  12. 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
     unregister

注1) サンプルプログラムのbind,resolve,destroyが正常に動作したときは、何も出力されません。

(g)インタフェースリポジトリ

 本項では、インタフェースリポジトリのサンプルプログラムの実行手順について説明します。

種別

サブディレクトリ

インタフェースリポジトリ

irsample/*

 ここでは、irsample/csample1での実行例で説明します。

  1. サンプルプログラムのディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/irsample/csample1
  2. make.sh コマンドを実行して、サンプルプログラムのインタフェース情報をインタフェースリポジトリへ登録、およびサンプルプログラムのコンパイルを実行します。(注1)
     make.sh
  3. irsample1 コマンドを実行します。
     irsample1
     <実行結果が表示されます>

注1) 初回実行(インタフェース情報登録)時にメッセージod51006が表示されますが、動作上は問題ありません。

(h)Windows(R)クライアント

 本項では、Windows(R)クライアントのサンプルプログラムの実行手順について説明します。

種別

サブディレクトリ

各種データ型

complex/samplelist.C/data_win/*

 ここでは、complex/samplelist.C/data_win/anyでの実行例で説明します。

[Solaris OE/Linuxサーバ]

  1. 以下のディレクトリへ現ディレクトリを移動します。
     cd $SAMPLES/complex/samplelist.C/data_win/any
  2. IDL コンパイラを実行してスタブとスケルトンを作成します。
     IDLc simple.idl
  3. $SAMPLES/complex/samplelist.C/data_win ディレクトリ下のサンプルプログラムに対応したサーバアプリケーションのサンプルディレクトリへ現ディレクトリを移動します。(注1)
     cd ../../data/any
  4. サーバアプリケーションを作成します。
     make
  5. サンプルプログラムを実行するために必要なインプリメンテーションリポジトリIDとオブジェクトリファレンスを登録します。
     register
  6. サーバアプリケーションを実行します。
     simple_s

[Windows(R)クライアント]

  1. Solaris OE/Linuxサーバの$SAMPLES/complex/samplelist.C/data_win/anyディレクトリ下のすべてのファイルをWindows(R)クライアントへ転送します。以下にftpを使用したときの例を示します。(注2)
     ftp <Solaris OE/Linuxサーバ名>
     :
     get simple.h
     :
     mget *.mak
     bin
     mget *.mdp
  2. エクスプローラから、転送したプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。
  3. 起動されたVisual C++の画面から"FileView"をクリックした後、メインプロジェクトディレクトリ(実行例では"any ファイル"と表示)をクリックします。simple_c.c 以外のファイルが表示されたときは、simple_c.cを除くすべてのファイルを、メニューバーから[編集]−[削除]を選択して削除します。
  4. 起動されたVisual C++のメニューバーから[挿入]−[プロジェクトファイルを追加]を選択します。
  5. ダイアログボックス中のファイルの種類から"すべてのファイル"を選択します。
  6. ダイアログボックスに表示されたファイル中から以下のファイルを"追加"します。
    ・simple.h
    ・simple_cdr.h
    ・simple_cdr.c
    ・simple_stub.c
  7. 起動されたVisual C++のメニューバーから[ビルド]−[すべての依存関係を更新]を選択した後、"OK"をクリックします。(注3)
  8. 起動されたVisual C++のメニューバーから[ビルド]−[ビルド]を選択してクライアントアプリケーションを作成します。
  9. クライアントアプリケーションの作成が正常終了した後、メニューバーから[ビルド]−[実行]を選択します。(注4)
     <実行結果のメッセージボックスが表示されます>

[Solaris OE/Linuxサーバ]

  1. サーバアプリケーションを終了させます。
  2. 不要となったサンプルプログラムのインプリメンテーションリポジトリIDとオブジェクトリファレンスを削除します。
     unregister

注1) サーバアプリケーションは、$SAMPLES/complex/samplelist.C/data_winディレクトリ下のディレクトリ名と$SAMPLES/complex/samplelist.C/dataディレクトリ下のディレクトリ名が一致するサンプルプログラムを使用してください。

注2) Windows(R)クライアントへファイルを転送するときは以下のように指定します。
 "プロジェクトワークスペースファイル": バイナリで転送
 "その他のファイル": ネットワークASCIIで転送

注3) 初回選択時に以下のようなメッセージが表示されますが、サンプルプログラムの作成/動作上は問題ありません。
 C:\Interstage\ODWIN\include\orb.h(525):ファイルOM_stub_skel.hが見つかりません
      :
 C:\Interstage\ODWIN\include\om_stsk.h(14):ファイルOM_cdr_lib.h が見つかりません

注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) 富士通株式会社 2005