第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 は他のブローカーに移植できないことに注意してください。