Exchange 2010 SP1 저널 사서함으로 인한 전송 지연

[증상]

일반적으로 Archiving 설정이 되어 있는 경우, 메시지 유입이 많은 업무시간 초반에 HUB 서버의 전송 지연 현상이 발생하며 Peak 시간이 지나면 문제가 풀리게 됨.

1. 이벤트 로그에서 Event ID 1050 경고가 확인 됩니다.

로그 이름:      Application

원본:            MSExchange Extensibility

이벤트 ID: 1050

'OnRoutedMessage' 이벤트를 처리하는 동안 'Journal Agent' 에이전트의 실행 시간이 90000 밀리초를 초과했습니다.

에이전트에서 이벤트 하나를 처리하는 시간으로는 일반적이지 않지만 이 메시지는 계속해서 처리됩니다 .

clip_image001

2. Tracking Log 에서 전송 지연 시점에 아래와 같은 status 가 지속되는 것이 확인 됩니다.

'432 4.3.2 STOREDRV.Deliver; recipient thread limit exceeded [Stage: CreateReplay]'

clip_image002

3. Queue 에서 아래의 오류와 함께 메시지 처리가 지연되는 것이 확인됩니다.

432 4.3.2 STOREDRV.Deliver; recipient thread limit exceeded

clip_image003

[원인]

기본적으로 Exchange 2010 SP1 에서 추가된 Store Driver Throttling 관련 기능으로 데이터베이스의 메일박스에 동시 메일 전송이 1개로 제한 수행되도록 되어 있는데 journal 의 경우는 동시에 큰 메시지나 여러 사용자를 포함한 메시지 등 메일 유입이 많아 이로 인해서 Recipient Thread Limit 초과 관련한 내용과 함께 해당 데이터베이스 및 메일서버로 전송되는 모든 메시지 전송이 지연이 발생할 수 있습니다.

[해결 방법]

방법 1

   Bin 디렉터리 아래의 EdgeTransport.exe.config 에서 아래 설정 추가

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

<add key="MaxMailboxDeliveryPerMdbConnections" value="3" />

clip_image004

방법 2

방법 1로 문제가 해결되지 않을 경우 해당 기능을 disable 할 수 있습니다.

Bin 디렉터리 아래의 EdgeTransport.exe.config 에서 아래 설정 추가

<add key="MailboxDeliveryThrottlingEnabled" value="False" />

방법 3

위 내용은 마이크로소프트 본사에 보고되어 Exchange 2010 SP1 RU6 에서 추가 해결될 것으로 기대하고 있습니다.

[추가 정보]

https://ilantz.wordpress.com/2011/04/10/432-4-3-2-storedrv-and-store-driver-throttling/

432-4.3.2 STOREDRV and Store Driver throttling

By default, Exchange 2010 SP1 will only attempt a single concurrent delivery to a mailbox to ensure that all of the mailboxes in a database receive a similar quality of service. However, a journal mailbox might have many messages directed towards it concurrently.