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

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 です。

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

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


追加の考慮事項

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

Copyright IBM Corp. 2004