トランザクショナル分散オブジェクト基盤 TPBroker 運用ガイド

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

3.4.13 CTRL_BREAK_EVENT発生時のコントロールハンドラ内の動作

ORBではCORBA::ORB_init()でSetConsoleCtrlHandler()を用いてコントロールハンドラの登録を行い,コントロールハンドラ内でORBの終了処理のあとにFALSEをリターンしています。この機能は,コントロールハンドラがリターンする値の設定,およびCTRL_BREAK_EVENTの発生時にデフォルトの処理で行っているORBの終了処理を行うかどうかの設定をする機能です。

<この項の構成>
(1) コントロールハンドラのリターン値
(2) コントロールハンドラ内で行うORBの終了処理

(1) コントロールハンドラのリターン値

環境変数 プロパティ 指定範囲 デフォルト値
HVI_CTRLHANDLER_RTN vbroker.orb.htc.ctrlHandlerRtn true|false false

CTRL_BREAK_EVENTの発生時に,ORBのコントロールハンドラがリターンする値を設定します。

コントロールハンドラがリターンする値TRUEおよびFALSEの意味については,Microsoft社が提供するSetConsoleCtrlHandler関数の仕様をMSDNなどでご確認ください。

注意事項
  • この機能を設定していない場合,および指定範囲外の値を設定した場合は,デフォルト値が設定されます。
  • 環境変数とプロパティの両方の設定がある場合はプロパティの設定が有効になります。

使用言語
C++ ORB(Windows)限定

(2) コントロールハンドラ内で行うORBの終了処理

環境変数 プロパティ 指定範囲 デフォルト値
HVI_CTRLHANDLER_NOCLEANUP vbroker.orb.htc.ctrlHandlerNoCleanup true|false false

CTRL_BREAK_EVENTの発生時に,ORBのコントロールハンドラ内でORBの終了処理を行うかどうかを設定します。ORBの終了処理を行う場合,以降のプロセス上でORBの機能を使用できません。

注意事項
  • この機能を使用しない場合("true"を設定する場合)は,サーバアプリケーション,およびクライアントアプリケーション内でORBの終了処理を行ってください。終了処理を行わない場合,osagentは終了したアプリケーションの情報を削除できないため,アプリケーションに対してHEARTBEATメッセージを送信します。この結果,アプリケーションの数によってはosagentやネットワークに負荷が掛かり,クライアントアプリケーションがサーバアプリケーションを認識できないなどの問題が発生することがあります。
  • この機能を設定していない場合,および指定範囲外の値を設定した場合は,デフォルト値が設定されます。
  • 環境変数とプロパティの両方の設定がある場合はプロパティの設定が有効になります。

使用言語
C++ ORB(Windows)限定