次の方法で共有


Email メッセージが数分間キュー Exchange Serverスタックしている

現象

Microsoft Exchange Server 2019、2016、または 2013 では、サーバーが 1 つの宛先 (Exchange Online など) に送信するように構成されている場合、メール メッセージがオンプレミスのメッセージ キューで数分間停止する可能性があります。 キュー内のメッセージ数を考慮するために、Exchange Onlineからの遅延 (400 シリーズ SMTP 応答コード) はほとんどありません。 最終的に、メッセージが送信されます。 ただし、いくつかの遅延があります。

原因

Exchange Serverは、複数の宛先にメッセージを送信するための同時接続または並列接続を作成するように設計されています。 他のユーザーを犠牲にして 1 つの宛先に送信することでこれらの接続が枯渇しないようにするために、Exchange Serverの既定の設定では、1 つの宛先 (SendConnector/NextHopDomain の FQDN) (Exchange Onlineなど) への大量のメールの送信が制限されます。 Exchange Serverを実行しているサーバーが、リレーまたはハイブリッド構成の一部としてすべてのメッセージをExchange Onlineに送信するように構成されている場合、これらの設定により、作成される並列接続数と合計接続数が制限されます。 これにより、メッセージのスループットがExchange Onlineに制限されます。

解決方法

Exchange ベースのサーバーが主にExchange Onlineへの送信に使用されている場合は、パフォーマンスを最適化し、大きなキューを構築しないように、次の設定を変更できます。

SmtpConnectorQueueMessageCountThresholdForConcurrentConnections

SmtpConnectorQueueMessageCountThresholdForConcurrentConnections パラメーターは、キュー内で宛先への別の接続の作成をトリガーするメッセージの数を決定します。 しきい値が低いほど、Exchange Server早くExchange Onlineへの新しい接続が開きます。 大量の電子メールの場合、キューからメッセージを送信するための並列接続が増えるため、キュー内のメッセージが少なくなります。 既定値は 20 メッセージです。 この値を 2 に設定すると、スループットが最も高くなります。 これを行うには、Edgetransport.exe.config ファイルを開き、Exchange Onlineへのトラフィックを<処理するすべてのサーバーで AppSettings> タグの後の任意の場所に次のパラメーターを追加します。

<add key="SmtpConnectorQueueMessageCountThresholdForConcurrentConnections" value="2"/>

注:

変更を有効にするには、MSExchangeTransport サービスを再起動する必要があります。

MaxPerDomainOutboundConnections

MaxPerDomainOutboundConnections パラメーターには、1 つのドメインへの同時接続の最大数を指定します。 既定値は 20 接続です。 接続の最大数を増やすには、次のコマンドレットを実行します。

Set-TransportService Mailbox01 -MaxPerDomainOutboundConnections 40

MessageRetryInterval

MessageRetryInterval パラメーターは、リモート サーバーへの接続エラーが発生した後の個々のメッセージの再試行間隔を指定します。 既定値は 15 分です。 再試行間隔の値を減らすには、次のコマンドレットを実行します。

Set-TransportService Mailbox01 -MessageRetryInterval 00:05:00

詳細については、「 Set-TransportService」を参照してください。