ページの先頭行へ戻る
Interstage Application Server V12.1.0 J2EE ユーザーズガイド(旧版互換)
FUJITSU Software

3.3.10 バッファ制御

クライアントからの要求データは、キューイングされているあいだは、一時的に共用メモリ上に保持しつづけます。

この共用メモリ上のデータ域を通信バッファといい、バッファ域を管理する制御をバッファ制御といいます。通信バッファは1つの要求データを埋め込む領域であるバッファ域が複数個で構成されます。なお、バッファ域の大きさをバッファ長、バッファ域の数をバッファ数といいます。


IJServerワークユニットの場合

このバッファ長、バッファ数については、Interstage管理コンソールのワークユニット設定で設定します。
1つの要求データを複写するバッファ域の大きさは、一定の長さ(4096バイト)用意しており、要求データを複写してキューイングします。このとき要求データ長が一定の長さ以内であれば、データがバッファ域に収まりきるため、そのままバッファ域に複写し、キューイングします(以下の注意参照)。
Interstage管理コンソールのワークユニット設定でバッファのチューニングを行った場合、バッファ域は、IJServer単位で作成され、バッファのチューニングを行っていない場合は、デフォルトバッファを共用します。

要求データは、バッファ域内に収まりきり、キューイングすることが性能的にも良い処理といえます。そのため、要求データ長が一定の長さ(4096バイト)を超える要求が多く存在する業務においては、バッファ長とバッファ数を使用者がチューニングできます。
ただし、バッファ長とバッファ数を大きくしすぎると多くの共用メモリを使用する必要があり、非効率です。そのため、業務ごとに最適なバッファ長、バッファ数を設定する必要があります。

Interstage管理コンソールのワークユニット設定でバッファ数をチューニングしない場合、デフォルトバッファ域を使用します。デフォルトバッファ域は、Interstage管理コンソールのワークユニット設定でバッファ数、バッファ長をチューニングしているIJServerのEJBアプリケーション、EJBアプリケーション、CORBAアプリケーションを除く、CORBA通信で共用されます。デフォルトバッファは、通常チューニングする必要ありません。しかし、od11110またはod11111が出力された場合は、デフォルトバッファのバッファ数が不足していることが考えられるため、CORBAサービスの動作環境ファイル(config)のnumber_of_common_bufferパラメタを修正することで、チューニングが可能です。

注意

要求データ長が固定長を超える場合は、サーバアプリケーション側で処理実行時に、残りデータが受信されます。クライアントがマルチスレッド構成で、同時に複数の要求を送信した場合、1つ目の要求データが読み込まれるまで、次の要求が処理されません。また、次以降の要求データはネットワーク上に滞留するため、要求データの量が多い場合は、クライアント側でソケットへの書き込みでタイムアウトが発生しod10965メッセージが出力される場合があります。

バッファ長

一つの要求データには、実際に使用者が設定したデータ部と、Interstageが使用する制御データ部が含まれます。
性能監視ツールで採取されるオペレーションごとのデータ長を参考にバッファ長の妥当性の確認を行うことが可能です。

バッファ数

バッファ数はクライアントからの同時要求数により求める必要があります。
クライアントからの要求が同時にキューにキューイングされる数分必要です。同時にキューイングされる数については、アプリケーションの多重度とアプリケーションの処理時間と同時にクライアントからくる要求数より求めてください。
バッファ数に関しては、isinfobjコマンドの滞留キュー数の結果や、性能監視ツールで採取される処理待ち要求数を参考に、バッファ数の妥当性の確認を行うことが可能です。性能監視ツールについては、「性能監視」を参照してください。