第36章 その他の調整オプション

このセクションでは、JBoss EAP メッセージングで、調整できる他の箇所を説明します。

  • 非同期送信の確認応答を使用します。

    トランザクション以外の永続メッセージを送信する必要があり、send() の呼び出しが返るまでにメッセージがサーバーに到達したという保証が必要ない場合は、ブロック送信するように設定しないでください。代わりに、非同期送信の確認応答を使用して、別のストリームで返される送信の確認応答を取得します。ただし、サーバーがクラッシュした場合に、一部のメッセージが失わる可能性があります。

  • pre-acknowledge モードを使用します。

    pre-acknowledge モードでは、メッセージはクライアントに送信される前に確認応答されます。これにより、ネットワーク上の確認応答トラフィックの量が減少します。ただし、クライアントがクラッシュすると、クライアントが再接続した場合にメッセージは再配信されません。

  • セキュリティーを無効にします。

    security-enabled 属性を false に設定してセキュリティーを無効にすると、パフォーマンスが若干改善されます。

  • 永続性を無効にします。

    persistence-enabledfalse に設定すると、メッセージ永続性を完全にオフにできます。

  • トランザクションを遅れて同期します。

    journal-sync-transactionalfalse に設定すると、トランザクションの永続的なパフォーマンスが向上しますが、障害時にトランザクションが失われる可能性がいくらかあります。

  • 非トランザクションを遅れて同期します。

    journal-sync-non-transactionalfalse に設定すると、非トランザクションの永続的なパフォーマンスが向上しますが、障害時に永続メッセージが失われる可能性がいくらかあります。

  • メッセージを非ブロックで送信します。

    送信されるすべてのメッセージのネットワークラウンドトリップの待機を回避するには、JMS および JNDI を使用している場合は、block-on-durable-sendblock-on-non-durable-sendfalse に設定するか、setBlockOnDurableSend() メソッドと setBlockOnNonDurableSend() メソッドを呼び出して ServerLocator に直接設定します。

  • consumer-window-size を最適化します。

    高速なコンシューマーがある場合には、consumer-window-size を増やしてコンシューマーフロー制御を効果的に無効にできます。

  • JMS API の代わりにコア API を使用します。

    JMS 操作は、サーバーが処理する前にコア操作に変換する必要があるため、コア API を使用する場合よりもパフォーマンスが低下します。コア API を使用する場合は、可能な限り SimpleString を取得するメソッドを使用するようにします。SimpleString は、java.lang.String とは異なり、ネットワークに書き込まれる前にコピーする必要がないため、呼び出し間で SimpleString インスタンスを再利用する場合に、不要なコピーを避けることができます。コア API は他のブローカーに移植できないことに注意してください。