付録E.1 メモリ所要量

Javaヒープ領域でのCosminexus RMのメモリ所要量を示します。

Cosminexusのメモリ所要量と,次に示すCosminexus RMのメモリ所要量の総和の最大値をCosminexusのJ2EEサーバ用オプション定義ファイル(usrconf.cfg)に指定する必要があります。add.jvm.argキーの-Xmxオプションに指定してください。

<この項の構成>
(1) 永続版リソースアダプタの場合
(2) 非永続版リソースアダプタの場合

(1) 永続版リソースアダプタの場合

永続版リソースアダプタの場合のメモリ所要量を次に示します。

(a) メモリ所要量の見積もり式

Cosminexus RMのメモリ所要量の総和を求めるには,次に示す1.~7.を加算します。

1.および2.で示すメモリ所要量は,Cosminexus RMが起動している間,常にJavaヒープ領域を消費する値です。

3.~6.で示すメモリ所要量は,該当する処理の間,一時的に使用されるメモリ使用量です。該当する処理が終わると解放されます。

7.で示すメモリ所要量は,JDBCコネクションの生成時に使用されるメモリ所要量です。JDBCコネクションを切断すると解放されます。ただし,Cosminexusのコネクションプーリング機能が有効な場合で,Cosminexusで定義したコネクションプーリング数に空きがあるときは,JDBCコネクションは解放されないでプールされるため,メモリは保持され続けます。

  1. Cosminexus RM起動時のメモリ所要量

     60KB×キューの数
    +60KB×永続化されたメッセージ数
    +75KB×コンフィグレーションプロパティのMDBのインスタンス数
    +75KB×コンフィグレーションプロパティのRMTRSendThreadNumの値※1
    +20MB

  2. メッセージをキャッシュした際のメモリ所要量

    キャッシュしたメッセージのサイズ※2×キャッシュしたメッセージ数

  3. 送信処理で一時的に使用するメモリ使用量

    (メッセージのサイズ※2×10+150KB)×メッセージ同時送信数+2MB

  4. 受信処理で一時的に使用するメモリ使用量

    (メッセージのサイズ※2×5+300KB)×メッセージ同時受信数+2MB

  5. MDBによる受信処理で一時的に使用するメモリ使用量

    (メッセージのサイズ※2×5+4MB)×メッセージ同時受信数+2MB

  6. キュー間転送で一時的に使用するメモリ使用量

    (メッセージのサイズ※2×10+450KB)×メッセージ同時送信数+2MB

  7. JDBCコネクションでのメモリ所要量

    使用する最大のメッセージのサイズ※2×4×コネクション同時使用数

注※1
コンフィグレーションプロパティのRMTRConnectFlagの値をtrueに設定した場合だけ加算してください。
注※2
メッセージのヘッダ,プロパティ,ペイロードおよびメッセージに付属するオブジェクトのサイズの合計です。
(b) メモリ所要量の見積もり例

次に示す七つの条件のもとにCosminexus RMのメモリ所要量を見積もる例を示します。

見積もり例1
条件1~条件6を満たす環境でCosminexus RMを起動した場合のメモリ所要量は,「(1)(a) メモリ所要量の見積もり式」で示した「1. Cosminexus RM起動時のメモリ所要量」と「7. JDBCコネクションでのメモリ所要量」の合計で算出できます。この条件の場合,7.のコネクション同時使用数は2となります。

(60KB×1+60KB×10+75KB×1+20MB)+(1MB×4×2)
=約29MB

見積もり例2
条件1~条件5を満たす環境で,条件1で生成したローカルキューに対して条件7のメッセージを1件送信した際のメモリ所要量は,「(1)(a) メモリ所要量の見積もり式」で示した「1. Cosminexus RM起動時のメモリ所要量」,「2. メッセージをキャッシュした際のメモリ所要量」,「3. 送信処理で一時的に使用するメモリ使用量」および「7. JDBCコネクションでのメモリ所要量」の合計で算出できます。この条件の場合,7.のコネクション同時使用数は2となります。

(60KB×1+60KB×10+75KB×1+20MB)+1MB+((1MB×10+150KB)×1+2MB)+(1MB×4×2)
=約42MB

(c) メモリ所要量見積もり時の注意事項

次に示す値は,hrmmkqueコマンド(-tオプションにshr_receive指定)の実行時に一時的に使用するメモリ所要量です。

3KB×-nオプションの値+3MB

この値は,サーバ側のJava VMでのメモリ使用量です。クライアント側でのメモリ使用量には加算されません。

(2) 非永続版リソースアダプタの場合

非永続版リソースアダプタの場合のメモリ所要量を次に示します。

(a) メモリ所要量の見積もり式

Cosminexus RMのメモリ所要量の総和を求めるには,次に示す1.~5.を加算します。

1.および2.で示すメモリ所要量は,Cosminexus RMが起動している間,常にJavaヒープ領域を消費する値です。

3.~5.で示すメモリ所要量は,該当する処理の間,一時的に使用されるメモリ使用量です。該当する処理が終わると解放されます。

  1. Cosminexus RM起動時のメモリ所要量

    60KB×キューの数+20MB

  2. メッセージをキューに登録した際のメモリ所要量

    キューに登録したメッセージのサイズ×メッセージ数
    +60KB×登録されたメッセージ数

  3. 送信処理で一時的に使用するメモリ使用量

    (メッセージのサイズ×10+150KB)×メッセージ同時送信数+2MB

  4. 受信処理で一時的に使用するメモリ使用量

    (メッセージのサイズ×5+300KB)×メッセージ同時受信数+2MB

  5. Message-driven Beanによる受信処理で一時的に使用するメモリ使用量

    (メッセージのサイズ×5+4MB)×メッセージ同時受信数+2MB

注※
メッセージのヘッダ,プロパティ,ペイロードおよびメッセージに付属するオブジェクトのサイズの合計です。
(b) メモリ所要量の見積もり例

次に示す三つの条件のもとにCosminexus RMのメモリ所要量を見積もる例を示します。

見積もり例1
条件1~条件2を満たす環境でCosminexus RMを起動した場合のメモリ所要量は,「(2)(a) メモリ所要量の見積もり式」で示した「1. Cosminexus RM起動時のメモリ所要量」で算出できます。

60KB×10+20MB
=約21MB

見積もり例2
条件1~条件2を満たす環境で,ローカルキューに対して条件3のメッセージを1件送信した際の一時的なメモリ所要量は,「(2)(a) メモリ所要量の見積もり式」で示した次の値の合計で算出できます。
  1. Cosminexus RM起動時のメモリ所要量
  2. メッセージをキューに登録した際のメモリ所要量
  3. 送信処理で一時的に使用するメモリ使用量

(60KB×10+20MB)+(1MB×1+60KB×1)+((1MB×10+150KB)×1+2MB)
=約34MB