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

第2章 ワークユニットの機能> 2.2 CORBAワークユニット

2.2.9 バッファ制御

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

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

[CORBAアプリケーションのバッファ制

1つの要求データを複写するバッファ域の大きさは、一定の長さ(4096バイト)で用意しており、要求データを複写してキューイングします。このとき要求データ長が一定の長さ以内であれば、データがバッファ域に収まりきるため、そのままバッファ域に複写し、キューイングします。(注)
 このとき使用されるキューは、インプリメンテーションリポジトリで定義されているインプリメンテーション単位に作成されます。“キュー制御”の[CORBAアプリケーション]を参照してください。ワークユニット定義でバッファのチューニングを行った場合、バッファ域はインプリメンテ−ション単位に作成されます。バッファのチューニングを行っていない場合は、バッファ域としてデフォルトバッファを共用します。なお、ワークユニット運用を行わないCORBAアプリケーションは、バッファのチューニングを行うことはできません。ワークユニット運用を行わないCORBAアプリケーションはバッファ域としてデフォルトバッファを共用します。

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

バッファのチューニングについては、ワークユニットで動作しているCORBAアプリケーションに対して有効です。ワークユニット定義の“Buffer Number”および“Buffer Size”ステートメントを指定することにより、CORBAアプリケーション単位でチューニングを行うことが可能です。チューニングされたバッファはデフォルトバッファ用の共用メモリとは別の共用メモリを使用します。定義の詳細については“Buffer Number:通信バッファ数”および“Buffer Size:通信バッファ長”を参照してください。

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

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

[バッファ長]

 一つの要求データには、実際に使用者が設定したデータ部と、Interstageが使用する制御データ部が含まれます。

 CORBAアプリケーションの場合は、性能監視ツールで採取されるオペレーションごとのデータ長を参考にバッファ長の妥当性の確認を行うことが可能です。

[バッファ数]

 バッファ数はクライアントからの同時要求数により求める必要があります。

 クライアントからの要求が同時にキューにキューイングされる数分必要です。同時にキューイングされる数については、アプリケーションの多重度とアプリケーションの処理時間と同時にクライアントからくる要求数より求めてください。

 バッファ数に関しては、isinfobjコマンドの滞留キュー数の結果や、性能監視ツールで採取される処理待ち要求数を参考に、バッファ数の妥当性の確認を行うことが可能です。性能監視ツールについては、“性能監視”を参照してください。

■コマンドを使用した定義方法

 ワークユニット定義の“Buffer Number(通信バッファ数)”および“Buffer Size(通信バッファ長)”に設定します。以下に定義登録の実行例を示します。なお、ワークユニット定義の詳細は“ワークユニット定義”を参照してください。

ワークユニット定義の登録


 ワークユニット定義

 [Application Program]
 Buffer Number:100
 Buffer Size:8192

 isaddwudefコマンドでワークユニット名を指定して登録します。

 isaddwudef -o ISSAMPLE1

■Interstage管理コンソールを使用した定義方法

 以下の方法で連続異常終了回数を設定してください。

  1. Interstage管理コンソールにログインします。
  2. Interstage管理コンソールの
    [Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ワークユニット名] > の[配備]タブ
    または、
    [Interstage管理コンソール] > [Interstage Application Server] > [システム] > [ワークユニット] > [ワークユニット名] > [インプリメンテーションリポジトリID]の[環境設定]タブ
    で[CORBAアプリケーション]の“通信バッファ数”および“通信バッファ長”に値を設定してください。

 Interstage管理コンソールを使用する場合は、“Intestage管理コンソールのヘルプ”も参照してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007