12.2. 大きいメッセージの設定

12.2.1. 大きなメッセージの場所の設定

以下の管理 CLI コマンドを使用すると、大きなメッセージディレクトリーの設定を読み込むことができます。出力も、デフォルト設定を強調表示するように組み込まれています。

/subsystem=messaging-activemq/server=default/path=large-messages-directory:read-resource
{
    "outcome" => "success",
    "result" => {
        "path" => "activemq/largemessages",
        "relative-to" => "jboss.server.data.dir"
    }
}
重要

最適なパフォーマンスを実現するには、大きなメッセージのディレクトリーを、メッセージジャーナルまたはページングディレクトリーとは別の物理ボリュームに格納することを推奨します。

large-messages-directory 設定要素は、大きなメッセージを格納するファイルシステムの場所を指定するために使用されます。デフォルトでは、パスは activemq/largemessages であることに注意してください。以下の管理 CLI コマンドを使用するとパスの場所を変更できます。

/subsystem=messaging-activemq/server=default/path=large-messages-directory:write-attribute(name=path,value=PATH_LOCATION)

また、上記の出力の relative-to 属性にも注意してください。relative-to が指定された場合、path 属性の値は、relative-to で指定されたファイルパスに対する相対値とみなされます。デフォルト値は JBoss EAP プロパティーの jboss.server.data.dir です。スタンドアロンサーバーの場合、jboss.server.data.dirEAP_HOME/standalone/data にあります。ドメインの場合、各サーバーには EAP_HOME/domain /servers の下に独自の serverX/data/activemq ディレクトリーがあります。以下の管理 CLI コマンドを使用すると relative-to の値を変更できます。

/subsystem=messaging-activemq/server=default/path=large-messages-directory:write-attribute(name=relative-to,value=RELATIVE_LOCATION)
大きなメッセージのサイズの設定

管理 CLI を使用して、大きなメッセージの現在の設定を表示します。この設定は connection-factory 要素の一部であることに注意してください。たとえば、デフォルトの RemoteConnectionFactory の現在の設定を読み込むには、以下のコマンドを使用します。

/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:read-attribute(name=min-large-message-size)

同様の構文を使用して属性を設定します。

/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:write-attribute(name=min-large-message-size,value=NEW_MIN_SIZE)
注記

min-large-message-size 属性の値はバイト単位となります。

大きなメッセージの圧縮の設定

高速かつ効率的に転送するために大きなメッセージを圧縮することができます。圧縮/解凍操作はすべて、クライアント側で処理されます。圧縮対象のメッセージが min-large-message size より小さい場合は、通常のメッセージとしてサーバーに送信されます。管理 CLI を使用してブール値プロパティー compress-large-messagestrue に設定し、大きなメッセージを圧縮します。

/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:write-attribute(name=compress-large-messages,value=true)

12.2.2. コア API を使用した大きなメッセージのサイズの設定

クライアント側でコア API を使用している場合は、setMinLargeMessageSize メソッドを使用して、大きなメッセージの最小サイズを指定する必要があります。大きなメッセージの最小サイズ (min-large-message-size) はデフォルトで 100KB に設定されています。

ServerLocator locator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(InVMConnectorFactory.class.getName()))

locator.setMinLargeMessageSize(25 * 1024);

ClientSessionFactory factory = ActiveMQClient.createClientSessionFactory();