第36章 その他の調整オプション
このセクションでは、JBoss EAP メッセージングで、調整できる他の箇所を説明します。
非同期送信の確認応答を使用します。
トランザクション以外の永続メッセージを送信する必要があり、
send()
の呼び出しが返るまでにメッセージがサーバーに到達したという保証が必要ない場合は、ブロック送信するように設定しないでください。代わりに、非同期送信の確認応答を使用して、別のストリームで返される送信の確認応答を取得します。ただし、サーバーがクラッシュした場合に、一部のメッセージが失わる可能性があります。pre-acknowledge
モードを使用します。pre-acknowledge
モードでは、メッセージはクライアントに送信される前に確認応答されます。これにより、ネットワーク上の確認応答トラフィックの量が減少します。ただし、クライアントがクラッシュすると、クライアントが再接続した場合にメッセージは再配信されません。セキュリティーを無効にします。
security-enabled
属性を false に設定してセキュリティーを無効にすると、パフォーマンスが若干改善されます。永続性を無効にします。
persistence-enabled
をfalse
に設定すると、メッセージ永続性を完全にオフにできます。トランザクションを遅れて同期します。
journal-sync-transactional
をfalse
に設定すると、トランザクションの永続的なパフォーマンスが向上しますが、障害時にトランザクションが失われる可能性がいくらかあります。非トランザクションを遅れて同期します。
journal-sync-non-transactional
をfalse
に設定すると、非トランザクションの永続的なパフォーマンスが向上しますが、障害時に永続メッセージが失われる可能性がいくらかあります。メッセージを非ブロックで送信します。
送信されるすべてのメッセージのネットワークラウンドトリップの待機を回避するには、JMS および JNDI を使用している場合は、
block-on-durable-send
とblock-on-non-durable-send
をfalse
に設定するか、setBlockOnDurableSend()
メソッドとsetBlockOnNonDurableSend()
メソッドを呼び出してServerLocator
に直接設定します。consumer-window-size
を最適化します。高速なコンシューマーがある場合には、
consumer-window-size
を増やしてコンシューマーフロー制御を効果的に無効にできます。JMS API の代わりにコア API を使用します。
JMS 操作は、サーバーが処理する前にコア操作に変換する必要があるため、コア API を使用する場合よりもパフォーマンスが低下します。コア API を使用する場合は、可能な限り
SimpleString
を取得するメソッドを使用するようにします。SimpleString
は、java.lang.String
とは異なり、ネットワークに書き込まれる前にコピーする必要がないため、呼び出し間でSimpleString
インスタンスを再利用する場合に、不要なコピーを避けることができます。コア API は他のブローカーに移植できないことに注意してください。