Share via


SMTP Temp Table

우선 먼저 Exchange 의 Special Mailbox 인 SMTP mailbox 에 대해서 설명 드리도록 하겠습니다.

SMTP Mailbox는 Exchange 200X 의 Transport 의 “SMTP (servername-{guid}) mailbox” 에 해당합니다.

다양한 메시지들이 전송되기 전에 임시로 머무는 temporary holding place라고 이해하시면 됩니다.

지난번 MFCMAPI로 오픈 하셨던 것을 기억하시면 됩니다. 그 메일박스를 열어보면 아래와 같은 폴더 구조를 확인하셨습니다.

clip_image002

SMTP mailbox 는 각 mailbox Store를 기반으로 생성이 됩니다. Servername과 STOREGUID를 기반으로 생성되기 때문에, 구별하기 쉽습니다.

Mailbox Store 내에는 mailbox object 와 함께, SMTP mailbox directory object가 AD에 존재하게 됩니다.

이것은 Store 가 처음 생성되고 mount 되는 시점에 생성됩니다.

이 메일박스가 AD에서 존재하지 않을 경우 ESM에서 disconnect 된 것으로 보이며, 1022/326/1194 와 같은 이벤트를 App log에서 보게 됩니다.

그리고 사용자의 모든 메일은 outbox 에 걸려 있게 됩니다. 이 경우 KB.828938 를 통해서 새롭게 SMTP mailbox를 생성하셔야 합니다.

또한 SMTP mailbox가 정상 동작하지 않는 다면, 메일은 Local delivery 또는 외부로 전송이 안 이뤄지게 됩니다.

위에서 # 으로 표시된 #0-#20 이 SMTP Temp table folder 입니다. Exchange Transport 를 통해서 메시지가 처리 되는 동안, 여러 곳 중에 한 군데에서

머물게 됩니다. 그러는 동안 메시지는 여러 단계와 memory 기반한 queue(Categorization/Advanced queueing) 등을 거치게 됩니다.

SMTP Protocol 기반 또는 MAPI based로 메시지가 인입되느 냐에 따라 약간의 차이가 있긴 하지만, 물리적 메시지가 Transport 처리 과정 중

어디에 있든 Queue viewer를 통해서 ESM에서 볼 수 있습니다.

그럼 왜 이 Temp table에 메시지가 Stuck 될까요 ? 알려진 이슈로는 AV(Antivirus) 솔류션으로 인한 TEMP table corruption이 대표적입니다.

File-level virus 또는 Exchange Aware  AV에 의해서도 발생하는 것으로 알려져 있습니다.

그래서 File-level 의 경우는 IIS 와 Exchange 관련 폴더를 제외영역으로 해 주셔야 하는 이유입니다.

리포팅 해 주신 것 처럼 SMTP 서비스를 Restarting 할 때마다 Old message가 계속 재 전송되었다면, 거의 100% Temp table 이슈라고 볼 수 있습니다.

발송된 메시지 ID와 Temp folder의 메시지 ID를 비교해 보면, 중복 발송되는 메시지인지를 확인 하실 수 있습니다.

그럼, 어떻게 이를 모니터링 할까인데, 사실 알려진 모니터링 방법은 없습니다만, 아래의 성능 카운터를 통해서 가능할 수 도 있을 것 같아서

알려드립니다. 아래 내용을 한번 로컬 서버에서 체크 해 보시기 바랍니다.

MSExchangeIS Transport Driver\temptable current

MSExchangeIS Transport Driver\temptable deletes

MSExchangeIS Transport Driver\temptable total

clip_image005

메시지 flow가 이상하거나, duplicated message가 다시 발생하는 경우, 위 카운터를 보시고,

비 정상적으로 이 Temp table에 많은 메시지가 있을 경우에는 삭제 해 주실 것을 권장 드립니다.

다음은 전체 폴더를 삭제하는 방법입니다.

# SMTP서비스를 중지àMFC MAPI로 TEMP TABLE 오픈 àHard deleteion àSMTP 재시작

이럴 경우 다시 Temp table이 재 생성 됩니다.

 

clip_image008

clip_image010

clip_image012

clip_image014