13.3. メッセージジャーナルの設定

メッセージジャーナルは、JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xml の以下の属性を使用して設定されます。
journal-directory
メッセージジャーナルの場所。デフォルト値は data/journal です。パフォーマンスを最大にするために、このジャーナルを独自の物理ボリュームに置いて、ディスクヘッドの移動を最小化する必要があります。このジャーナルがストレージエリアネットワークに保存された場合は、ネットワークの各ジャーナルインスタンスが独自の論理単位を持つ必要があります。
create-journal-dir
true の場合は、ジャーナルディレクトリが、journal-directory で指定された場所で作成されます。デフォルト値は true です。
journal-type
有効な値は NIO または ASYNCIO です。NIO の場合は、Java NIO ジャーナルが使用されます。ASYNCIO の場合は、Linux 非同期 IO が使用されます。ASYNCIO が非 Linux または非 libaio システムで設定されている場合は、HornetQ がこれを検出し、NIO を使用します。
journal-sync-transactional
true の場合、HornetQ では、すべてのトランザクションデータがトランザクション境界 (コミット、準備、およびロールバック) でディスクにフラッシュされます。デフォルト値は true です。
journal-sync-non-transactional
true の場合、HornetQ では、非トランザクションメッセージデータ (送信および承認) がディスクにフラッシュされます。デフォルト値は true です。
journal-file-size
各ジャーナルファイルのサイズ (バイト単位)。デフォルト値は 10485760 バイト (10 メガバイト) です。
journal-min-files
ジャーナルが保持するファイルの最小数。HornetQ が起動され、初期データがない場合、HornetQ はこの数のファイルを事前に作成します。ジャーナルファイルの作成とパディングはコストがかかる操作であるため、実行時に回避されます (ファイルが満たされます)。ファイルを事前に作成する場合、ファイルが満たされると、ジャーナルがすぐに次のファイルで続行されます (ファイルを作成するために一時停止しません)。
journal-max-io
IO キューに保持する書き込み要求の最大数。書き込み要求は、実行のためにシステムに送信される前にここでキューに格納されます。キューがいっぱいになると、キューでスペースが利用可能になるまで書き込みがブロックされます。NIO の場合、これは 1 である必要があります。AIO の場合、これは 500 である必要があります。NIO が使用されているか、AIO が使用されているかに応じて異なるデフォルト値が保持されます (NIO の場合は 1、AIO の場合は 500)。AIO の最大値はオペレーティングシステムレベル (/proc/sys/fs/aio-max-nr) で設定された値 (通常は 65536) よりも大きくしてはいけません。
journal-buffer-timeout
HornetQ はフラッシュ要求のバッファーを保持し、バッファーがいっぱいになったとき、またはこのタイムアウトが経過したとき (どちらか早い方) にバッファー全体をフラッシュします。これは、NIO と AIO の両方に使用され、多くの同時書き込みとフラッシュが必要な場合にスケーリングが向上します。
journal-buffer-size
AIO でタイムアウトになったバッファーのサイズ。デフォルト値は 490 キロバイトです。
journal-compact-min-files
ジャーナルが圧縮される前のファイルの最小数。デフォルト値は 10 です。
journal-compact-percentage
ジャーナルのこの割合以下がライブデータと見なされた場合は、圧縮が行われます。デフォルト値は 30 です。また、圧縮前に journal-compact-min-files を満たす必要があります。

警告

ほとんどのディスクには、ハードウェア書き込みキャッシュが含まれます。これにより、書き込みがキャッシュされ、後でレイジー状態でディスクに書き込まれるため、ディスクのパフォーマンスが向上します。
多くのシステムでは、ディスク書き込みキャッシュがデフォルトで有効です。したがって、オペレーティングシステムから同期した後であっても、データがディスクに書き込まれる保証はありません。障害が発生した場合は、重要なデータが失われることがあります。
一部のシステムは、非揮発性、またはバッテリー駆動の書き込みキャッシュを持ちます。これらを使用した場合は、障害発生時にデータが必ずしも失われるわけではありませんが、テストが重要になります。
ディスクがこれらのバックアップを備えておらず、冗長アレイ (RAID など) の一部でない場合は、ディスク書き込みキャッシュが disabled になっていることを確認してください。これにより、パフォーマンスが低下することがありますが、データの整合性は保持されます。
Linux の場合は、IDE ディスク用の hdparm ツール、sdparm、あるいは SCSI または SATA ディスク用の sginfo ツールでディスクの書き込みキャッシュ設定を検査または変更します。
Windows の場合は、ディスクを右クリックし、[プロパティ] を選択して設定を確認または変更します。