Interstage Application Server OLTPサーバ運用ガイド
|
目次
索引

|
2.3.1.1 CORBAアプリケーション運用時のタイマ監視
CORBAサービスは、アプリケーションのハングアップなどを防ぐため、アプリケーションの稼働状況を監視するためのタイマ監視機能を備えています。クライアント/サーバアプリケーションの動作中に、設定されたタイムアウト時間に応じてタイムアウトを発生させ、アプリケーションに通知します。
タイムアウト時間の種類
CORBAサービスでは、以下のタイムアウト時間を設定することができます。

CORBAサービスのタイムアウト時間は、CORBAサービスの動作環境ファイル(config)で設定します。
- period_receive_timeout
- クライアントにおける、リクエスト送信(サーバメソッド発行)から返信までの待機時間。(初期値:60秒)
サーバメソッドからの返信がないままこの時間を経過すると、クライアントアプリケーションにタイムアウトが通知されます。
- なお、Interstageシステム定義の“Timeout”定義項目に待機時間を設定することで、period_recive_timeoutをカストマイズできます。
- period_server_timeout
- サーバ(Persistentタイプ以外)における、サーバメソッド起動からCORBA_ORB_initメソッド(ORB初期化メソッド:C言語インタフェースのメソッド名)発行までの監視時間。(初期値:60秒)
CORBA_ORB_initメソッドが発行されずにこの時間を経過すると、クライアントにNO_IMPLEMENT例外(サーバメソッド未実装を意味)が通知されます。
- period_idle_con_timeout
- サーバにおける、無通信状態(クライアントからのリクエスト送信なし)の監視時間(リクエスト返信完了後のコネクション維持時間)。(初期値:600秒)
この時間を超えてもクライアントからのリクエスト送信がない場合、クライアントとのコネクションを切断し、リクエスト処理に使用したメモリ資源を解放します。
- period_client_idle_con_timeout
- クライアントにおける、無通信状態(サーバへのリクエスト送信なし)の監視時間(リクエストの復帰完了後のコネクション維持時間)。(初期値:0(監視を行わない))
この時間を超えてもサーバへのリクエスト送信がない場合、次回のリクエスト送信時には、サーバとのコネクションの切断・再接続後にリクエストを送信します。
リクエスト送信(サーバメソッドの実行要求)から復帰までの処理の流れと、関連するタイムアウト時間について、以下に示します。

- クライアントアプリケーションからリクエストの発行
- リクエストの送信(コネクションの確立)
- サーバメソッドの起動(Persistentタイプ以外)
- CORBA_ORB_initメソッドの発行
- サーバメソッドの復帰
- コネクションの切断
タイムアウト時間の設定の目安
CORBAアプリケーション連携を行う場合は、以下に考慮してタイムアウト時間を設定する必要があります。
- period_receive_timeout(クライアントアプリケーション側)
- クライアントアプリケーション側でのリクエストの送信から返信までの待機時間として、クライアント・サーバ間の通信速度やサーバメソッドの処理時間を考慮して、period_receive_timeoutには、T1時間以上の値を設定する必要があります。
通常、サーバアプリケーション側のperiod_server_timeout以上の値を設定します。
- period_server_timeout(サーバアプリケーション側)
- サーバアプリケーションのサーバメソッドの起動からCORBA_ORB_initメソッドが発行されるまでの処理時間を考慮して、period_server_timeoutには、T2時間以上の値を設定する必要があります。
- period_idle_con_timeout(サーバアプリケーション側)
- サーバアプリケーション側のCORBAサービスは、全リクエストの返信完了からperiod_idle_con_timeout(T3)時間が経過すると、クライアントとのコネクションを切断します。
CORBAサービスでは、リクエスト処理のためのメモリ資源をクライアントごとに確保するため、コネクションが切断されるまでその資源は保持されます。
period_idle_con_timeout(サーバアプリケーション側)には、CORBAサービスが使用できるメモリ容量、クライアント数などを考慮して設定する必要があります。
- period_client_idle_con_timeout(クライアントアプリケーション側)
- クライアントアプリケーション側のCORBAサービスは、全リクエストの復帰完了からperiod_client_idle_con_timeout(T4)時間が経過すると、次回のリクエスト送信時にサーバとのコネクションを一旦切断し、再接続して、リクエストを送信します。
これは、サーバ側でのタイムアウト(period_idle_con_timeout(T3)時間経過など)によりサーバとのコネクションが切断された場合、クライアント側でコネクション切断を検出しないままリクエストを送信したことによる送信エラーを防ぐためのものです。
- クライアント・サーバのみの場合
- period_client_idle_con_timeout(T4)には、サーバアプリケーション側のperiod_idle_con_timeout(T3)以下の値を設定します。
- クライアント・サーバ間にファイヤウォールが介在する場合
- period_client_idle_con_timeout(T4)とperiod_idle_con_timeout(T3)は、ファイヤウォールのコネクション維持時間を考慮して設定する必要があります。
詳細は“ファイヤウォールとの連携”を参照してください。
タイムアウト時間(period_receive_timeout)の動的変更
period_receive_timeout(リクエスト送信から返信までの待機時間)は、クライアントアプリケーションでCORBA_ORB_set_client_timerメソッド(C言語インタフェースのメソッド名)を発行することにより、動的に変更することができます。このメソッドで変更した時間は、クライアントアプリケーションのプロセス全体で有効になります。

各開発言語のタイムアウト時間変更メソッドを以下に示します。詳細は“リファレンスマニュアル(API編)”を参照してください。
[開発言語] |
[メソッド名] |
C言語 |
CORBA_ORB_set_client_timer |
C++言語 |
CORBA::ORB::set_client_timer |
Java |
com.fujitsu.ObjectDirector.CORBA.ORB.set_client_timer |
COBOL |
CORBA-ORB-SET-CLIENT-TIMER |
OOCOBOL |
CORBA-ORB-SET_CLIENT_TIMER |
Copyright 2003 FUJITSU LIMITED