メモリー・チェッカー・スレッドの使用

InterChange Server Express には、メモリー・チェッカー・スレッドが備えられています。これを使用すると、システムによるイベントの処理方法を規定したり、それに伴ってシステム・メモリーの使用量を規定することができます。これにより、メモリー不足 が原因でシステムが破損するリスクが軽減します。

メモリー・チェッカー・スレッドは、InterChange Server Express で使用されるメモリー量 を定期的に測定し、それが設定された許容範囲内にあるかどうか評価します。メモリー 使用量が許容範囲内にない場合、メモリー・チェッカー・スレッドはシステム・コンポーネント を管理して、メモリー使用量を削減します。

メモリー使用量が指定された下限しきい値を超える場合、メモリー・チェッカー・スレッド は、システム内のコネクター・コントローラーのイベント・リスナーを構成可能な 最大時間の間スリープさせます。時間はメモリー使用量が下限しきい値を超えた度合い によって異なりますが、「しきい値でのコネクターの休止時間 (分)」プロパティー に指定された時間を越えません。このようにしてイベント・リスナー・スレッドをスリープさせることにより、メモリー・チェッカー・スレッドはイベントの InterChange Server Express への送達速度をスローダウンし、上限メモリーしきい値を超えるリスクを軽減します。

メモリー使用量が「メモリーの上限しきい値 (パーセント)」プロパティー に指定された上限しきい値を超える場合、メモリー・チェッカー・スレッドはシステム内の コネクターを休止します。コネクターが休止すると、現在キューに入れられているビジネス・オブジェクトの 処理は継続されますが、新規イベントはポーリングされません。したがって、コネクターはキューに入れられたビジネス・オブジェクト数を削減するので、新規 ビジネス・オブジェクトの処理にさらなるメモリーを使用することなく、使用中の メモリー量を削減します。コネクターは、「しきい値での コネクターの休止時間」プロパティーに指定された最小時間の間、休止 します。「しきい値でのコネクターの休止時間」プロパティーに指定された時間が経過すると、メモリー・チェッカー・スレッドはメモリー使用量を再度調べます。メモリー使用量 が上限しきい値を超えていない場合、メモリー・チェッカー・スレッドはコネクターを 再始動します。ただし、メモリー使用量がまだ上限しきい値を超える場合、メモリー・ チェッカー・スレッドはコネクターを休止状態のままにします。

メモリー・チェッカー・スレッドは、調査と状態管理操作の合間に、「メモリー・ チェッカーのスリープ時間」プロパティーに指定された時間の間スリープします。

メモリー・チェッカー・スレッドを使用するには、以下のセクションの説明に 従う必要があります。

  1. CW_MEMORY_MAX パラメーターの設定
  2. メモリー・チェッカー・スレッド・プロパティーの構成
  3. 追加の考慮事項

CW_MEMORY_MAX パラメーターの設定

InterChange Server Express 始動スクリプトの Java パラメーター CW_MEMORY_MAX で、InterChange Server Express が使用可能な最大ヒープ・メモリーを設定する必要があります。メモリー・ チェッカー・スレッドは、この最大ヒープ・メモリー量のパーセンテージを指定する 構成可能なプロパティー値に基づいてアクションを行います。

CW_MEMORY_MAX パラメーターは、InterChange Server Express の最大ヒープ・サイズ を指定する -mx パラメーターと同じ値に設定します。デフォルト では、CW_MEMORY_MAX パラメーターは -mx パラメーターと同じ 値に設定されますが、-mx パラメーターを変更する場合には CW_MEMORY_MAX パラメーター も同様に変更する必要があります。

以下に、Windows コンピューター上の InterChange Server Express 用の、変更されていない start_server.bat 始動スクリプト の例を示します。

REM This is the -mx param value for the InterChange Server Express's memory heap
 set CW_MEM_HEAP=512
 
 REM Start the InterChange Server Express
 %CWJAVA% -Djava.ext.dirs=%JRE_EXT_DIRS%;"%MQ_LIB%";"%DB2_LIB%"
 -Duser.home="%CROSSWORLDS%" -mx%CW_MEM_HEAP%m -DTEAgent=1200
 -DCW_MEMORY_MAX=%CW_MEM_HEAP% %ORB_PROPERTY% -classpath %JCLASSES%
 ServerWrapper -s%SERVERNAME% %2 %3

CW_MEM_HEAP 変数は値 512 に設定され、この値を使用して -mx パラメーター が設定されるので、512 メガバイトのメモリーが Java ヒープ用に予約されます。CW_MEMORY_MAX パラメーター も、CW_MEM_HEAP 変数を使用して同じ値に設定されます。CW_MEMORY_MAX パラメーター の先頭には -D が付加されます。

メモリー・チェッカー・スレッド・プロパティーの構成

InterChange Server Express 構成ファイルを編集して、メモリー・チェッカー・スレッド のプロパティーを設定する必要があります。これらのプロパティーは、InterChange Server Express 構成インターフェース の「各種」タブに公開されます。InterChange Server Express の構成については、System Manager を使用してその他のプロパティーを構成を参照してください。「各種」 タブの「サーバーのメモリー」ペインで以下の手順を実行して、メモリー・チェッカー・スレッド を構成します。

  1. 「メモリー・チェッカーのスリープ時間」フィールドに、メモリー・チェッカー・スレッドが各操作間にスリープする時間を設定します。メモリー・ チェッカー・スレッドを使用不可にするには、「メモリー・ チェッカーのスリープ時間」フィールドに値 0 (デフォルト値) を 設定します。
  2. 「メモリーの上限しきい値 (パーセント)」フィールド に、InterChange Server Express が使用可能な合計メモリー (CW_MEMORY_MAX パラメーター に指定されている) のパーセントを設定します。この値を超えた場合、メモリー・チェッカー・スレッド はコネクターを休止して、メモリー使用量が上限しきい値より下がるまでコネクターが 新規イベントをポーリングしないようにします。デフォルト値は 90 です。これは、上限しきい値が CW_MEMORY_MAX パラメーターに指定されている 合計メモリーの 90 % であることを意味します。例えば、CW_MEMORY_MAX パラメーター が 512 メガバイトに設定されている場合、上限しきい値はおよそ 460 メガバイトになります。
  3. 「メモリーの下限しきい値 (パーセント)」フィールド に、InterChange Server Express が使用可能な合計メモリー (CW_MEMORY_MAX パラメーター に指定されている) のパーセントを設定します。この値を超えた場合、メモリー・チェッカー・スレッド はコネクターがイベントを InterChange Server Express に送達する速度を低下させます。デフォルト値 は 80 です。これは、下限しきい値が CW_MEMORY_MAX パラメーター に指定されている合計メモリーの 80 % であることを意味します。例えば、CW_MEMORY_MAX パラメーター が 512 メガバイトに設定されている場合、下限しきい値はおよそ 410 メガバイトになります。
  4. 「しきい値でのコネクターの休止時間」フィールドに、下限メモリーしきい値を超えたときにコネクターによる InterChange Server Express へのイベント 送達速度が低下される最大時間と、上限メモリーしきい値を超えたときにコネクターが 休止を続ける最小時間の両方を指定する時間数 (分単位) を設定します。デフォルト値は 5 です。

図 94 に、メモリー・チェッカー・ スレッドの構成に使用する「サーバーのメモリー」プロパティーの「各種」タブを 示します。

図 94. メモリー・チェッカー・スレッド・プロパティーの構成

追加の考慮事項

メモリー・チェッカー・スレッドを使用する際には、以下のことを考慮 してください。

Copyright IBM Corp. 2004, 2005