Introduction

특정 corrupted 메세지로 인하여 전체 Information Store 다운시켜 서비스 지장을 초래하는 경우가 존재합니다. 2010 Mailbox Quarantine 이러한 상황을 막는 도움이 있습니다.

 

What is Mailbox Quarantine ?

Mailbox Quarantine Exchange 2010 information Store Feature입니다. 레지스트리에 존재하는 값을 기본으로하여 Store crash하거나 그럴 가능성이 있는 mailbox 감지하고 특정 기간동안 그것을 Quarantine하게 됩니다. 그렇게 Store crash 유발할 있는 mailbox "Poisoned" mailbox라고 합니다.

 

When does quarantine happen ?

다음의 경우에 quarantine 발생합니다.

1. mailbox 안의 특정 mail thread crash 경우

2. 하나의 mailbox 처리하는데 5 이상의 thread 할당되어 오랜시간 진행되지 못하는 경우

 

How does it work?

Store crash 조짐이 있는 mailbox tagging 하게됩니다.

해당 Tag에는 store crash 유발한 횟수와 time stamp 포함합니다.

만약 mailbox 의해 store crash 되었다면 다음 경로에 해당 레지스트리키가 생성됩니다.

HKLM\SYSTEM\CCS\Services\MSexchangeIS\Servername\Private-dbguid\Quarantined Mailboxes\ {Mailbox GUID}

CrashCount:  The number of times the mailbox has crashed the store

LastCrashTime:  The last time the mailbox crashed the store

·         최소 1 이상 mailbox 의한 crash 발생되어야 해당 레지스트리키가 생성됩니다.

 

Database mount될때마다 store 해당 database tagging 처리된 mailbox 있는지 확인하기 위해 레지스트리키를 체크하게 됩니다. 만약 레지스트리에 의해 특정 mailbox store crash 경우가 확인되면 해당 mailbox quarantine 됩니다.

 

기본적으2시간 안에 3번의 위험요소가 인지되면 해당 mailbox 6시간동안 quarantine됩니다. 이러한 기본 설정은 다음 레지스트리키를 생성하여 수정이 가능합니다.

HKLM\SYSTEM\CCS\Services\MSexchangeIS\ParameterSystem\Servername\Private-dbguid\Quarantined Mailboxes

MailboxQuarantineCrashThreshold:  The number of times a mailbox can be identified before the store quarantines it.

MailboxQuarantineDurationInseconds:  The number of seconds a mailbox remains in quarantine before the store releases it.

·         기본적으로는 위 두개의 레지스트리키는 존재하지 않습니다. 기본설정을 수정하기 위한 경우에만 생성하면 됩니다.

Store Background process는 각 마운트된 database에 대해 2시간 간격(수정불가)으로 레지스트리 값을 체크합니다. StoreCrashCount LastCrashTime  값을 체크하고 다음 4가지 action을 처리합니다.

1.       모든 tag처리된 mailbox들이 최근 2시간이내에MailboxQuarantineThreshhold (기본값은 3) 보다  작은CrashCount값을 가질 경우HKLM\SYSTEM\CCS\Services\MSexchangeIS\Servername\Private-dbguid\Quarantined Mailboxes 에 위치한mailboxdbguid  키값이 삭제됩니다.

2.       MailboxQuarantineThreshhold (기본값은 3) 보다 큰 CrashCount 를 가진 tag처리된 mailbox quarantine되지 않았다면 해당 mailbox는 즉시 quarantine 됩니다.

3.       Mailbox 가 기본 6시간동안 혹은MailboxQuarantineDurationInSeconds 에 지정된 시간만큼 quarantine되어 있으면 해당 mailbox는 즉시 해제됩니다.

4.       Mailbox 가 기본 6시간동안 혹은MailboxQuarantineDurationInSeconds 에 지정된 시간만큼 quarantine되어 있지 않은 상태라면 해당 mailbox는 여전히 quarantine되어 있는 상태로 남아있게 됩니다.

What happens when clients try to access a quarantined mailbox ?

클라이언트가 mailbox에 접근 시 다음 동작이 수행됩니다.

1.     StoreecMailboxQuarantined  error code를 리턴하게 되고 이를 바탕으로MapiExceptionMailboxQuarantined 의 일시적 exception transport XSO client 에게 던져 줍니다.

2.     5분간격으로 transport quarantine mailbox로 보내진 메세지의 배달을 시도하게 됩니다.

3.     Outlook Client quarantined mailbox 접근을 시도시에 다음 팝업 메세지를 확인할 수 있게 됩니다.

4.     OWA에서는 quarantined mailbox 접근을 시도시에 다음 error message를 확인할 수 있습니다.

오직 MFCMAPI(http://mfcmapi.codeplex.com/) 클라이언트만이 quarantine 상태의 mailbox access 할 수 있습니다. Content indexing 이나 mailbox assistants 와 같은 Exchange 프로세스조차도 해당 mailbox에 대한 접근은 허용되지 않습니다. 예를들어 다음과 같은 move mailbox 작업역시 error가 발생하게 됩니다.

               

Resetting a quarantined mailbox

 다음 위치에 있는 quarantine 레지스트리키를 삭제함으로써 quarantine mailbox 설정을 reset 할 수 있습니다.

HKLM\SYSTEM\CCS\Services\MSexchangeIS\Servername\Private-dbguid\Quarantined Mailboxes\ {Mailbox guid}.

 Database는 반드시 dismount remount 되거나 IS 서비스를 재시작해야 정상적으로 적용이 됩니다.

 

Troubleshooting

Application log

Mailbox가 자동적으로 quarantine된 겨우 다음의 이벤트 로그를 확인할 수 있습니다.

Log Name:      Application

Source:        MSExchangeIS

Event ID:      10018

Task Category: General

Level:         Error

Description:

The mailbox for user /o=AMERICAS/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=test1 has been quarantined. Access to this mailbox will be restricted to administrative logons for the next 6 hours.

 

Mailbox 가 자동적으로 quarantine으로부터 삭제된 경우 다음 이벤트 로그를 확인 가능합니다.

Log Name:      Application

Source:        MSExchangeIS

Event ID:      10019

Task Category: General

Level:         Error

Description: The quarantine of the mailbox for user /o=AMERICAS/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=test1 has expired. Access to the mailbox has been restored.

Shell Command

Mailbox quarantine되었는지 확인하기 위해 다음 명령을 사용할 수 있습니다.

Get-MailboxStatistics –identity test1 | FL  Isquarantined

Isquarantined : True

 

Performance Monitor

다음의 Performance monitor Count를 제공합니다.

MSExchangeIS Mailbox\Quarantined Mailbox Count

이는 특정 서버의 quarantine mailbox의 개수를 나타냅니다.

 

EXTRA

Trace type “Function” 선택 후 “Store” 컴포넌트 아래의 tagQuarantineMailbox” 테그를 이용하면 됩니다.

 

 

by MG