Interstage Application Server OLTPサーバ運用ガイド |
目次
索引
![]() ![]() |
第2章 OLTPサーバの設計 | > 2.2 各種ワークユニット | > 2.2.1 CORBAワークユニット |
CORBAワークユニットについて説明します。
CORBAワークユニットでは、インプリメンテーションリポジトリに登録されたCORBAアプリケーションを実行単位としています。ワークユニット定義には、CORBAアプリケーションを識別するものとして、インプリメンテーションリポジトリIDを登録します。運用単位を同一にする(同時に起動・停止を行う)CORBAアプリケーションの場合には、1つのワークユニットに複数のインプリメンテーションリポジトリIDを指定することができます。
CORBAワークユニットで運用可能なCORBAアプリケーションは、サーバタイプが"persistent"のもののみです。(OD_impl_instのtype=persistent指定のみ)
CORBAワークユニットで動作モードとして"SYNC_END"を使用する場合、ワークユニット停止時にCORBA_BOA_impl_is_readyから復帰した場合、必ずプロセスを終了する必要があります。ワークユニットの通常停止および同期停止を行った場合、"SYNC_END"であった場合、CORBA_BOA_impl_is_readyから復帰しますが、プロセスを終了するまではワークユニットの停止は待ち状態となります。そのため、必ずCORBA_BOA_impl_is_readyから復帰した場合はプロセスを終了する必要があります。
CORBAワークユニット運用における主な機能について説明します。
多数のクライアントから、特定のCORBAアプリケーションに同時にリクエストが発行される場合、プロセス多重度を設定することにより、同時に処理できるプロセス数を指定できます。プロセス多重度は、ワークユニット定義(Concurrency:プロセス多重度)で指定します。
なお、CORBAワークユニットでプロセス多重度を指定した場合には、インプリメンテーションリポジトリ登録時に、対象のCORBAアプリケーション(インプリメンテーションリポジトリID)に対するプロセス最大多重度(OD_impl_instコマンドのproc_conc_maxパラメタ)を、ワークユニット定義(Concurrency)より大きい値を指定する必要があります。
CORBAワークユニットの場合は、“インプリメンテーションリポジトリIDで設定したthr_conc_initで設定した値”דワークユニット定義のConcurrencyで設定した値”がアプリケーションが同時に処理できる数となります。
クライアントからの入力データの誤りなどにより、アプリケーションが異常終了した場合に、アプリケーションを自動的に再起動させることができます。自動再起動を設定すると、アプリケーションが停止中に受け付けられたクライアントからの要求についても、再起動されたアプリケーションが引き続き処理することができます。
アプリケーションの自動再起動については、ワークユニット定義の“Application Retry Count”で設定することが可能です。設定する値はワークユニット異常終了となるまでの連続異常終了回数を設定します。無限に再起動を行いたい場合は、0を設定するかまたは、“Application Retry Count”を省略します。アプリケーション自動再起動の概念については、“アプリケーション自動再起動”を参照してください。
ワークユニット運用では、CORBAアプリケーションの呼出しから復帰までの応答時間を監視できます。アプリケーションのハングアップや処理遅延を監視し、クライアントへのレスポンス遅延を防ぐことができます。監視時間はワークユニット定義(Maximum Processing Time:アプリケーション最大処理時間)で指定します。
また、タイムアウト発生時の処理として、アプリケーション強制停止の有無をワークユニット定義(Terminate Process for Time out:最大処理時間超過時の強制停止の有無)で指定できます。
システム例外 |
マイナーコード(16進表記) |
UNKNOWN |
0x464a0072 |
ワークユニットでタイマ監視時間を設定した場合には、CORBAサービスのconfigファイルの設定を考慮する必要があります。詳細については、“CORBAアプリケーションのタイマ監視”を参照してください。
複数のクライアントなどから特定のCORBAアプリケーションに対するリクエストが集中した場合に、すべてのリクエストの処理を起動してしまうとサーバが負荷過重状態となり、処理遅延・タイムアウトが多発する可能性があります。これを防ぐため、キュー制御機能で負荷を平準化させることができます。
CORBAアプリケーションでは、インプリメンテーションごとにキュー制御を行うことができます。
キューに対する操作として、以下を行うことができます。
システム例外 |
マイナーコード(16進表記) |
NO_IMPLEMENT |
0x464a0080 |
システム例外 |
マイナーコード(16進表記) |
NO_RESOURCE |
0x464a0094 |
優先度制御(インプリメンテーションリポジトリに登録)
CORBAアプリケーションに対して優先度を設定することができます。同一インプリメンテーション内のインタフェース間において優先度をつけることができます。高負荷時など、優先的に処理を行う業務が存在する場合に優先度を設定することができます。優先度はインプリメンテーションリポジトリ定義で行います。設定方法については、“優先度制御”を参照してください。
目次
索引
![]() ![]() |