10.2.5. メッセージジャーナル属性の設定

以下に挙げる属性はすべて、メッセージングサーバーの子プロパティーです。そのため、管理 CLI を使用して値の取得と設定をするコマンド構文は同じです。

指定された属性の現在の値を読み取る構文は以下のようになります。

/subsystem=messaging-activemq/server=default:read-attribute(name=ATTRIBUTE_NAME)

属性の値を書き込む構文は、一致するパターンに従います。

/subsystem=messaging-activemq/server=default:write-attribute(name=ATTRIBUTE_NAME,value=NEW_VALUE)
  • create-journal-dir

    true に設定すると、ジャーナルディレクトリーがまだ存在しない場合は、journal-directory で指定された場所にジャーナルディレクトリーが自動的に作成されます。デフォルト値は true です。

  • journal-file-open-timeout

    この属性は、ジャーナルファイルを開く際のタイムアウト値を変更します。デフォルト値は 5 秒です。

  • journal-buffer-timeout

    フラッシュを必要とする書き込みで毎回フラッシュするのではなく、内部バッファーに保持し、満杯になるかタイムアウトになる (どちらか早い方) と内部バッファー全体をフラッシュします。これは NIO と ASYNCIO の両方で使用され、フラッシュが必要な多くの同時書き込みがある場合は、システムがより適切な調整を行うことが可能となります。

    このパラメーターは、バッファーがまだ満杯になっていない場合、バッファーをフラッシュするタイムアウトの制御を行います。通常、ASYNCIO は NIO より高速のフラッシュレートに対応できるため、システムは NIO と ASYNCIO のデフォルトを別々に保持します。NIO のデフォルト値は 3333333 ナノ秒 (300 回/秒) です。ASYNCIO のデフォルト値は 500000 ナノ秒 (2000 回/秒) です。

    注記

    タイムアウトを長くすると、レイテンシーを代償にシステムのスループットを増やすことができる可能性があり、デフォルトパラメーターはスループットと待ち時間のバランスをうまくとるように選択されています。

  • journal-buffer-size

    ASYNCIO でタイムアウトになったバッファーのサイズ (バイト単位)。journal-buffer-sizejournal-file-size は、min-large-message-size よりも高く設定する必要があります。そのように設定しなければ、メッセージはジャーナルには書き込まれません。詳細は、「大きいメッセージの設定」を参照してください。

  • journal-compact-min-files

    ジャーナルが圧縮される前のファイルの最小数journal-compact-min-files を設定してはじめて圧縮アルゴリズムが起動されます。

    これを 0 に設定すると、圧縮機能は完全に無効になります。ただし、ジャーナルが無制限に増加する危険性があります。有効に使用してください。

    このパラメーターのデフォルトは 10 です。

  • journal-compact-percentage

    圧縮を開始するしきい値。ライブデータがこの割合より少ないとみなされた場合は、圧縮が開始されます。また、少なくとも journal-compact-min-files のデータファイルがジャーナルに存在しなければ、圧縮は起動されません。

    このパラメーターのデフォルトは 30 です。

  • journal-file-size

    各ジャーナルファイルのサイズ (バイト単位)。このデフォルト値は 10485760 バイト (10MB) です。journal-file-sizejournal-buffer-size は、min-large-message-size より大きく設定する必要があります。そのように設定しなければ、メッセージはジャーナルには書き込まれません。詳細は、「大きいメッセージの設定」を参照してください。

  • journal-max-io

    書き込み要求は、実行するためにシステムへ送信される前にキューに置かれます。このパラメーターは、常時 IO キューに格納できる書き込み要求の最大数を制御します。キューが満杯になると、領域が解放されるまで書き込みがブロックされます。

    システムは、NIO または ASYNCIO のどちらかによって、パラメーターに別々のデフォルト値を保持します。NIO のデフォルト値は 1 で、ASYNCIO のデフォルト値は 500 です。

    値には制限があります。最大 ASYNCIO の合計値は、OS レベルで設定されている値 (/proc/sys/fs/aio-max-nr、通常 65536) より高くすることはできません。

  • journal-min-files

    ジャーナルが保持するファイルの最小数。JBoss EAP が起動され、初期メッセージデータがない場合、JBoss EAP では journal-min-files の数のファイルを事前に作成します。デフォルトは 2 です。

    ジャーナルファイルを作成してパディングを書き込むことは、かなりコストのかかる操作で、ファイルで一杯になる実行時には、これを最小限に抑える必要があります。ファイルを事前に作成しておくと、ジャーナルが満杯になっても、ジャーナルを作成するために一時停止することなく、次のジャーナルをすぐに再開できます。

    定常状態でキューに格納する予定のデータ量に応じて、データ全体の量と一致するようにこのファイルの数を調整する必要があります。

  • journal-pool-files

    再利用可能なジャーナルファイルの数。ActiveMQ では必要に応じてファイルを作成しますが、ファイルを回収する際には、この値まで減少させます。デフォルトは -1 です。これは、無制限を意味します。

  • journal-sync-transactional

    true に設定されると、JBoss EAP では、コミット、準備、ロールバックなどのトランザクション限界で、すべてのトランザクションデータが必ずディスクにフラッシュされるようになります。デフォルト値は true です。

  • journal-sync-non-transactional

    true に設定されると、JBoss EAP では、送信や確認などのトランザクション以外のメッセージデータが、毎回必ずディスクにフラッシュされるようになります。デフォルト値は true です。

  • journal-type

    有効な値は NIO または ASYNCIO です。

    NIO を選択すると、JBoss EAP に Java NIO ジャーナルの使用を指示します。ASYNCIO は、JBoss EAP に Linux 非同期 IO ジャーナルの使用を指示します。ASYNCIO を選択しても Linux が実行されていない場合、または libaio がインストールされていない場合、JBoss EAP は Java NIO ジャーナルを使用します。