Borland(R) Enterprise Server VisiBroker(R) デベロッパーズガイド

[目次][索引][前へ][次へ]

4.8.1 Borland Enterprise Server VisiBrokerアプリケーション

<この項の構成>
(1) アプリケーションの配置
(2) vbjの使用(Java)
(3) アプリケーションの実行(C++)
(4) クライアントアプリケーションの実行

(1) アプリケーションの配置

Borland Enterprise Server VisiBrokerを使用して開発したアプリケーションを配置するには,まずアプリケーションを実行するホストでランタイム環境を設定して,必要なサポートサービスがローカルネットワークで使用できる状態であることを確認してください。

C++の場合
Borland Enterprise Server VisiBroker(C++)を使用して開発したアプリケーションに必要なランタイム環境には次のようなコンポーネントが含まれます。
  • Borland Enterprise Server VisiBrokerをインストールしたbinサブディレクトリにあるBorland Enterprise Server VisiBroker C++ライブラリ
  • アプリケーションに必要なサポートサービスの可用性
VisiBroker ORBライブラリは,配置されたアプリケーションを実行するホストにインストールしなければなりません。このライブラリは,アプリケーション環境用のPATHにインストールしなければなりません。

Javaの場合
Borland Enterprise Server VisiBroker(Java)を使用して開発したアプリケーションに必要なランタイム環境には,次のようなコンポーネントが含まれます。
  • Javaランタイム環境
  • Borland Enterprise Server VisiBrokerをインストールしたlibサブディレクトリのvbjorb.jarファイルにあるアーカイブしたBorland Enterprise Server VisiBrokerのJavaパッケージ
  • アプリケーションに必要なサポートサービスの可用性
Javaランタイム環境は,配置されたアプリケーションを実行するホストにインストールしなければなりません。Borland Enterprise Server VisiBrokerのJavaパッケージは,配置されたアプリケーションを実行するホストにインストールしなければなりません。
(a) 環境変数

配置されたアプリケーションが特定のホストのスマートエージェント(osagent)を使用する場合,アプリケーションを実行する前にOSAGENT_ADDR環境変数を設定しなければなりません。vbj実行形式ファイルを使用する場合は,環境変数が自動的に設定されます。ただし,次のコマンドライン引数を使用する場合,コマンドライン引数の指定が環境変数の指定より優先されます。

C++の場合
-ORBagentAddrコマンドライン引数またはvbroker.agent.addrコマンドライン引数を使用してホスト名またはIPアドレスを指定できます。

Javaの場合
vbroker.agent.addr(Java)コマンドライン引数を使用してホスト名またはIPアドレスを指定できます。

配置されたアプリケーションがスマートエージェント(osagent)との通信時に特定のUDPポートを使用する場合,アプリケーションを実行する前にOSAGENT_PORT環境変数を設定しなければなりません。次のコマンドライン引数を使用する場合,コマンドライン引数の指定が環境変数の指定より優先されます。

C++の場合
-ORBagentPortコマンドライン引数またはvbroker.agent.portコマンドライン引数を使用してIPポート番号を指定できます。

Javaの場合
vbroker.agent.portコマンドライン引数を使用してUDPポート番号を指定できます。

表4-2にC++アプリケーションのコマンドライン引数を示します。また,表4-3にJavaアプリケーションのコマンドライン引数を示します。

環境変数の詳細については,「2. 環境設定」を参照してください。

(b) サポートされているサービスを使用するには

スマートエージェント(osagent)は,配置されたアプリケーションを実行するネットワークのどこかで実行しなければなりません。このように,実行するアプリケーションの要件によっては,ほかのBorland Enterprise Server VisiBrokerのプログラムを起動する必要があります。これらのサービスには,表4-1のものが含まれます。

表4-1 実行するアプリケーション要件によって確認する必要があるケース

サービス 必要なケース
オブジェクト活性化デーモン(oad) アプリケーションが,オンデマンドで起動しなければならないオブジェクトをインプリメントするサーバである場合。
インタフェースリポジトリ(irep) アプリケーションが,動的スケルトンインタフェースまたは動的インプリメンテーションインタフェースを使用する場合。これらのインタフェースの説明については,「16. インタフェースリポジトリの使用」を参照してください。
ゲートキーパー アプリケーションを,ネットワークセキュリティのファイアウォールを使用した環境で実行する必要がある場合。

(2) vbjの使用(Java)

vbjコマンドを使用してアプリケーションを起動し,アプリケーションの動作を制御するコマンドライン引数を入力できます。

 
vbj -Dvbroker.agent.port=10000 <class>
 

(3) アプリケーションの実行(C++)

ここで,クライアントプログラムとサーバインプリメンテーションをコンパイルしたので,最初のBorland Enterprise Server VisiBrokerアプリケーションを実行する準備ができました。

Borland Enterprise Server VisiBrokerクライアントプログラムやサーバインプリメンテーションを実行する前に,まず,ローカルネットワーク上の最低一つのホストでスマートエージェントを起動する必要があります。スマートエージェントについては,「4.7.1 スマートエージェントの起動」を参照してください。

(4) クライアントアプリケーションの実行

クライアントアプリケーションはVisiBroker ORBオブジェクトを使用するアプリケーションですが,自身のVisiBroker ORBオブジェクトをほかのクライアントアプリケーションには提供しません。

C++の場合
クライアントアプリケーションに指定できるコマンドライン引数を表4-2に示します。この引数はサーバにも適用できます。

表4-2 クライアントアプリケーションのコマンドライン引数(C++)

オプション 説明
-ORBagent <0|1> VisiBrokerの_bind()時に,スマートエージェントがサーバを探索するかどうかを指定します。
0を設定した場合,探索しません。
1を設定した場合,探索します。
デフォルトは1です。
-ORBagentAddr <hostname|ip_address> このクライアントが使用するスマートエージェントを実行しているホストのホスト名またはIPアドレスを指定します。
hostnameを設定した場合,ホスト名を指定します。
ip_addressを設定した場合,IPアドレスを指定します。
このオプションの指定を省略した場合や,自ホストまたはagentaddrファイルで指定したホストからスマートエージェントを探索できない場合は,ブロードキャストメッセージでスマートエージェントを見つけます。
-ORBagentPort <port_number> スマートエージェントのポート番号を指定します。複数のVisiBroker ORBドメインが必要な場合に有用です。
指定を省略した場合,14000番で動作します。
-ORBconnectionMax <#> コネクションの最大数を指定します。
指定を省略した場合,無制限にコネクションを許可します。
-ORBconnectionMaxIdle <#> コネクションが非アクティブな状態の最大監視時間を秒単位で指定します。最大監視時間を経過してもコネクションが非アクティブなままの場合,VisiBrokerがコネクションを終了します。
このオプションはインターネットアプリケーションで設定します。
0を設定した場合,監視しません。
デフォルトは0です。
-ORBDefaultInitRef デフォルトの初期リファレンスを指定します。
-ORBInitRef 初期リファレンスを指定します。
-ORBnullstring <0|1> 1を設定した場合,VisiBroker ORBがC++ NULL文字をストリームします。NULL文字列は長さが0の文字列としてマーシャルされます。これは,長さが1の文字列としてマーシャルされる空の文字列("")とは異なり,単独の文字("\0")です。
0を設定した場合,NULL文字列をマーシャルしたときは,CORBA::BAD_PARAMとなります。NULL文字列をアンマーシャルしたときは,CORBA::MARSHALとなります。
デフォルトは0です。

サーバとクライアントが同一プロセス内に存在しnull文字列を送信するようなエラーケースの場合,BAD_PARAM例外は発生しません。サーバとクライアントが別プロセスの場合はCORBA::BAD_PARAM例外が発生します。
-ORBrcvbufsize <buffer_size> 応答を受信するために使用するTCPバッファのサイズをバイト単位で指定します。指定値は,性能やベンチマークの結果に著しく影響します。
指定を省略した場合,デフォルト値が設定されます。
デフォルトはOSよって異なるため,各OSのマニュアルを参照してください。
-ORBsendbufsize <buffer_size> クライアント要求を送信するために使用するTCPバッファのサイズをバイト単位で指定します。指定値は,性能やベンチマークの結果に著しく影響します。
指定を省略した場合,デフォルト値が設定されます。
デフォルトはOSよって異なるため,各OSのマニュアルを参照してください。
-ORBtcpNoDelay <0|1> ソケットが要求を送信する契機を指定します。指定値は,性能やベンチマークの結果に著しく影響します。
1を設定した場合,すべてのソケットが即座に要求を送信します。
0を設定した場合,ソケットはバッファが満杯になった時点で要求を一括して送信します。
デフォルトは0です。

Javaの場合
クライアントは,vbjコマンドまたはJava対応のWebブラウザから起動します。
クライアントアプリケーションに指定できるコマンドライン引数を表4-3に示します。

表4-3 クライアントアプリケーションのコマンドライン引数(Java)

オプション 説明
-DORBagentAddr=<hostname|ip_address> このクライアントが使用するスマートエージェントを実行しているホストのホスト名またはIPアドレスを指定します。
hostnameを設定した場合,ホスト名を指定します。
ip_addressを設定した場合,IPアドレスを指定します。
このオプションの指定を省略した場合や,自ホストまたはagentaddrファイルで指定したホストからスマートエージェントを探索できない場合は,ブロードキャストメッセージでスマートエージェントを見つけます。
-DORBagentAddrFile=<file_name> デフォルトファイルのagentaddrの代わりに使用するファイルを指定します。
-DORBagentNoFailOver=<false|true> VisiBrokerアプリケーションが通信しているosagentが終了した場合,ほかのosagentと通信するかどうかを指定します。
trueを設定した場合,VisiBrokerアプリケーションは,先に通信していたosagentにだけ再度通信を試みます。
falseを設定した場合,VisiBrokerアプリケーションは,先に通信していたosagentだけでなくほかのosagentにも再度通信を試みます。
不正な値を指定した場合,trueを設定したときと同じ動作をします。
デフォルトはfalseです。
-DORBagentPort=<port_number> スマートエージェントのポート番号を指定します。複数のVisiBroker ORBドメインが必要な場合に有用です。
デフォルトは14000です。指定を省略した場合,デフォルト値が設定されます。
アプリケーション内でORB.init()メソッドの第2引数にORBagentPortまたはORBdisableLocatorのプロパティを設定した場合,その効果はありません。ORBオプションの値を有効にする場合は,コマンドライン上で-Dオプションで指定してください。
-DORBalwaysProxy=<false|true> クライアントが常にゲートキーパーを使用して接続する必要があるかどうかを指定します。
falseを設定した場合,ゲートキーパーを使用しないで接続できます。
trueを設定した場合,常にゲートキーパーを使用して接続します。また,trueを設定した場合は,必ず-DORBgatekeeperIORオプションも設定してください。
不正な値を指定した場合,trueを設定したときと同じ動作をします。
デフォルトはfalseです。
-DORBalwaysTunnel=<false|true> クライアントが常にHTTPを使用してゲートキーパーに接続する必要があるかどうかを指定します。
falseを設定した場合,HTTPを使用しないで接続できます。
trueを設定した場合,常にHTTPを使用して接続します。また,trueを設定した場合は,必ず-DORBgatekeeperIORオプションも設定してください。
不正な値を指定した場合,trueを設定したときと同じ動作をします。
デフォルトはfalseです。
-DORBbackCompat=<false|true> 旧バージョンのVisiBrokerクライアントとVisiBrokerサーバとの互換性を確保するかどうかを指定します。指定値はランタイムに通知されます。
falseを設定した場合,互換性を確保しません。
trueを設定した場合,互換性を確保します。
旧バージョンのVisiBrokerに基づいてサーバやクライアントの環境を構成する場合は,trueを指定してください。
デフォルトはfalseです。
-DORBconnectionMax=<#> コネクションの最大数を指定します。
指定を省略した場合,無制限にコネクションを許可します。
-DORBconnectionMaxIdle=<#> コネクションが非アクティブな状態の最大監視時間を秒単位で指定します。最大監視時間を経過してもコネクションが非アクティブなままの場合,VisiBrokerがコネクションを終了します。
このオプションはインターネットアプリケーションで設定します。
0を設定した場合,監視しません。
最大アイドル時間の監視は,プロパティvbroker.orb.gcTimeoutの設定値(デフォルト30秒)の範囲の誤差があります。
デフォルトは0です。
-DORBdebug=<false|true> デバッグ機能を使用するかどうかを指定します。
falseを設定した場合,デバッグ機能を使用しません。
trueを設定した場合,デバッグ機能を使用します。
デフォルトはfalseです。
-DORBdebugDir=<directory> スレッドのデバッグ情報を書き込むディレクトリを指定します。
デフォルトでは,カレントワーキングディレクトリを使用します。
-DORBdebugThreads=<false|true> スレッドのデバッグ機能を使用するかどうかを指定します。
falseを設定した場合,デバッグ機能を使用しません。
trueを設定した場合,デバッグ機能を使用します。
デフォルトはfalseです。
-DORBDefaultInitRef デフォルトの初期リファレンスを指定します。
nameservには,ORBDefaultInitRefを使用しないでください。ORBInitRefを使用してください。
-DORBdisableAgentCache=<false|true> スマートエージェントのキャッシュを有効にするかどうかを指定します。
falseを設定した場合,有効にします。
trueを設定した場合,無効にします。
不正な値を指定した場合,trueを設定したときと同じ動作をします。
デフォルトはfalseです。
-DORBdisableGatekeeperCallbacks=<false|true> ゲートキーパーのコールバックを有効にするかどうかを指定します。
falseを設定した場合,有効にします。
trueを設定した場合,無効にします。また,trueを設定した場合は,-DORBgatekeeperIORオプションも設定してください。
デフォルトはfalseです。
-DORBdisableLocator=<false|true> スマートエージェントとゲートキーパーを有効にするかどうかを指定します。
falseを設定した場合,有効にします。
trueを設定した場合,無効にします。
不正な値を指定した場合,trueを設定したときと同じ動作をします。
アプリケーション内でORB.init()メソッドの第2引数にORBagentPortまたはORBdisableLocatorのプロパティを設定した場合,その効果はありません。ORBオプションの値を有効にする場合は,コマンドライン上で-Dオプションで指定してください。
デフォルトはfalseです。
-DORBgatekeeperIOR=<URL> IORに対応するURLを指定します。
-DORBgcTimeout=<#> ORBのガーベッジコレクションを実行する周期を秒単位で指定します。
デフォルトは30です。
-DORBInitRef 初期リファレンスを指定します。
-DORBmbufSize=<buffer_size> Borland Enterprise Server VisiBrokerがオペレーション要求処理に使用する中間バッファのサイズを指定します。
性能向上のため,ORBは前のバージョンのBorland Enterprise Server VisiBrokerよりも複雑なバッファ管理を行います。送信または受信したデータがデフォルトより大きければ,リクエストごと,または応答ごとに新しいバッファが割り当てられます。
4キロバイトより大きいデータをアプリケーションが頻繁に送信する場合に,バッファ管理の利点を生かしたいとき,このシステムプロパティを使用して,デフォルトのバッファサイズよりも大きいバイト数を指定できます。
送信バッファと受信バッファのデフォルトサイズは,それぞれ4キロバイトです。
-DORBservices=<service> インストールするORBの特殊サービスを指定します。
インストールできるサービスは,ユーザが作成したサービス,Borland Enterprise Server VisiBrokerが提供するORBManagerサービス,および別製品のBorland Enterprise Server VisiBrokerサービス(ネーミングサービスなど)です。
-DORBtcpNoDelay=<false|true> ネットワークコネクションがデータを送信する契機を指定します。
falseを設定した場合,ネットワークコネクションは,バッファが満杯になった時点でデータを一括して送信します。
trueを設定した場合,すべてのネットワークコネクションが即座にデータを送信します。
デフォルトはfalseです。
-DORBwarn=<0|1|2> 警告メッセージの出力レベルを指定します。
0を設定した場合,警告メッセージを出力しません。
1を設定した場合,次の警告メッセージを出力します。
  • ユーザ作成コードからのCORBA以外の例外
  • ユーザ作成コードからのCORBA以外の例外のスタックトレース
2を設定した場合,次の警告メッセージを出力します。
  • ユーザ作成コードからのCORBA以外の例外
  • ユーザ作成コードからのCORBA以外の例外のスタックトレース
  • CORBAの例外
  • CORBAの例外のスタックトレース
デフォルトは0です。