Consider the following scenarios when a Dynamic Distribution Group has a Lightweight Directory Access Protocol (LDAP) filter that contains more than 32,000 characters in a Microsoft Exchange Server 2010 environment:
Scenario 1
Assume that you send a message to the Dynamic Distribution Group directly. In this situation, the EdgeTransport.exe process crashes on the Exchange Server 2010 Hub Transport server. However, you do not receive a non-delivery report (NDR) message. Additionally, the following events are logged in the Application log:Log Name: Application
Source: MSExchangeTransport
Date: Date
Event ID: 10003
Task Category: PoisonMessage
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
The transport process failed during message processing with the following call stack: Microsoft.Exchange.Data.Directory.ADFilterException: The filter string size exceeds maximum allowed size of 32k characters.
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientCache.ExpandGroup(IADDistributionList group)
at Microsoft.Exchange.Transport.Categorizer.GroupItem.ExpandMembers(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.GroupItem.ProcessLocally(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.RecipientItem.Process(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.Resolver.ResolveAll()
at Microsoft.Exchange.Transport.Categorizer.CategorizerComponent.Stage2ResolveEngine(TransportMailItem transportMailItem, TaskContext taskContext)
at Microsoft.Exchange.Transport.Categorizer.TaskContext.Invoke()
at Microsoft.Exchange.Transport.Categorizer.CatScheduler.JobThreadEntry(Object ignored)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
Source: MSExchangeTransport
Date: Date
Event ID: 10003
Task Category: PoisonMessage
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
The transport process failed during message processing with the following call stack: Microsoft.Exchange.Data.Directory.ADFilterException: The filter string size exceeds maximum allowed size of 32k characters.
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientCache.ExpandGroup(IADDistributionList group)
at Microsoft.Exchange.Transport.Categorizer.GroupItem.ExpandMembers(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.GroupItem.ProcessLocally(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.RecipientItem.Process(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.Resolver.ResolveAll()
at Microsoft.Exchange.Transport.Categorizer.CategorizerComponent.Stage2ResolveEngine(TransportMailItem transportMailItem, TaskContext taskContext)
at Microsoft.Exchange.Transport.Categorizer.TaskContext.Invoke()
at Microsoft.Exchange.Transport.Categorizer.CatScheduler.JobThreadEntry(Object ignored)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
Log Name: Application
Source: MSExchange Common
Date: Date
Event ID: 4999
Task Category: General
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
Watson report about to be sent for process id: Process ID, with parameters: E12, Build Type, Version Number, edgetransport, M.E.Data.Directory, M.E.D.D.R.ADRecipientCache.ExpandGroup, M.E.D.Directory.ADFilterException, XXXX, Version Number.
ErrorReportingEnabled: False
Source: MSExchange Common
Date: Date
Event ID: 4999
Task Category: General
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
Watson report about to be sent for process id: Process ID, with parameters: E12, Build Type, Version Number, edgetransport, M.E.Data.Directory, M.E.D.D.R.ADRecipientCache.ExpandGroup, M.E.D.Directory.ADFilterException, XXXX, Version Number.
ErrorReportingEnabled: False
Scenario 2
Assume that you send a message to another distribution group that uses the Dynamic Distribution Group as a delivery restriction. In this situation, the EdgeTransport.exe process crashes on the Exchange Server 2010 Hub Transport server. However, you do not receive a non-delivery report (NDR) message. Additionally, the following events are logged in the Application log:Log Name: Application
Source: MSExchangeTransport
Date: Date
Event ID: 10003
Task Category: PoisonMessage
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
The transport process failed during message processing with the following call stack: Microsoft.Exchange.Data.Directory.ADFilterException: The filter string size exceeds maximum allowed size of 32k characters.
at Microsoft.Exchange.Data.Directory.LdapFilterBuilder.LdapFilterFromQueryFilter(QueryFilter queryFilter, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADGenericPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, QueryFilter filter, SortBy sortBy, Int32 pageSize, IEnumerable`1 properties, CreateObjectDelegate objectCtor, CreateObjectsDelegate objectArrayCtor, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, QueryFilter filter, SortBy sortBy, Int32 pageSize, IEnumerable`1 properties, CreateObjectDelegate objectCtor, CreateObjectsDelegate objectArrayCtor, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, QueryFilter filter, SortBy sortBy, Int32 pageSize, IEnumerable`1 properties, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADDynamicGroupPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, String ldapFilter, Int32 pageSize, CustomExceptionHandler customExceptionHandler, IEnumerable`1 properties)
at Microsoft.Exchange.Data.Directory.Recipient.ADDynamicGroup.Expand(Int32 pageSize)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipient.TryIsStrictMemberOfWithLimit(ADObjectId recipientId, ADRecipient rootGroup, Boolean directOnly, ADRecipientSession session, HashSet`1 visitedGroups, Int32& adQueryCount, Int32 adQueryLimit, Boolean& isMember)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipient.TryIsMemberOfWithLimit(ADObjectId recipientId, ADObjectId groupId, Boolean directOnly, ADRecipientSession session, Int32& adQueryLimit, Boolean& isMember)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.TryIsSenderMemberOfWithLimit(IEnumerable`1 groupIdList, Boolean& isSenderMemberOf)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.CheckPermissionRestriction()
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.Check()
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.CheckDeliveryRestriction(ADObjectId senderId, Boolean senderIsAuthenticated, ICollection`1 rejectMessagesFrom, ICollection`1 rejectMessagesFromDLMembers, ICollection`1 acceptMessagesFrom, ICollection`1 acceptMessagesFromDLMembers, ICollection`1 bypassModerationFrom, ICollection`1 bypassModerationFromDLMembers, ICollection`1 moderators, ICollection`1 managedBy, Boolean requiresAllSendersAreAuthenticated, Boolean moderationEnabled, RecipientType recipientType, ADRecipientSession session, ISimpleCache`2 senderMembershipCache)
at Microsoft.Exchange.Transport.Categorizer.DeliveryRestriction.CheckRestriction(ISimpleCache`2 memberOfGroupCache, Int64& maxRecipientMessageSize)
at Microsoft.Exchange.Transport.Categorizer.RestrictedItem.CheckDeliveryRestrictions(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.GroupItem.CheckDeliveryRestrictions(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.RestrictedItem.PreProcess(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.RecipientItem.Process(Expansion expansion)
at Micosoft.Exchange.Transport.Categorizer.Resolver.ResolveAll()
at Microsoft.Exchange.Transport.Categorizer.CategorizerComponent.Stage2ResolveEngine(TransportMailItem transportMailItem, TaskContext taskContext)
at Microsoft.Exchange.Transport.Categorizer.TaskContext.Invoke()
at Microsoft.Exchange.Transport.Categorizer.CatScheduler.JobThreadEntry(Object ignored)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
Source: MSExchangeTransport
Date: Date
Event ID: 10003
Task Category: PoisonMessage
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
The transport process failed during message processing with the following call stack: Microsoft.Exchange.Data.Directory.ADFilterException: The filter string size exceeds maximum allowed size of 32k characters.
at Microsoft.Exchange.Data.Directory.LdapFilterBuilder.LdapFilterFromQueryFilter(QueryFilter queryFilter, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADGenericPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, QueryFilter filter, SortBy sortBy, Int32 pageSize, IEnumerable`1 properties, CreateObjectDelegate objectCtor, CreateObjectsDelegate objectArrayCtor, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, QueryFilter filter, SortBy sortBy, Int32 pageSize, IEnumerable`1 properties, CreateObjectDelegate objectCtor, CreateObjectsDelegate objectArrayCtor, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, QueryFilter filter, SortBy sortBy, Int32 pageSize, IEnumerable`1 properties, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADDynamicGroupPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, String ldapFilter, Int32 pageSize, CustomExceptionHandler customExceptionHandler, IEnumerable`1 properties)
at Microsoft.Exchange.Data.Directory.Recipient.ADDynamicGroup.Expand(Int32 pageSize)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipient.TryIsStrictMemberOfWithLimit(ADObjectId recipientId, ADRecipient rootGroup, Boolean directOnly, ADRecipientSession session, HashSet`1 visitedGroups, Int32& adQueryCount, Int32 adQueryLimit, Boolean& isMember)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipient.TryIsMemberOfWithLimit(ADObjectId recipientId, ADObjectId groupId, Boolean directOnly, ADRecipientSession session, Int32& adQueryLimit, Boolean& isMember)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.TryIsSenderMemberOfWithLimit(IEnumerable`1 groupIdList, Boolean& isSenderMemberOf)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.CheckPermissionRestriction()
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.Check()
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.CheckDeliveryRestriction(ADObjectId senderId, Boolean senderIsAuthenticated, ICollection`1 rejectMessagesFrom, ICollection`1 rejectMessagesFromDLMembers, ICollection`1 acceptMessagesFrom, ICollection`1 acceptMessagesFromDLMembers, ICollection`1 bypassModerationFrom, ICollection`1 bypassModerationFromDLMembers, ICollection`1 moderators, ICollection`1 managedBy, Boolean requiresAllSendersAreAuthenticated, Boolean moderationEnabled, RecipientType recipientType, ADRecipientSession session, ISimpleCache`2 senderMembershipCache)
at Microsoft.Exchange.Transport.Categorizer.DeliveryRestriction.CheckRestriction(ISimpleCache`2 memberOfGroupCache, Int64& maxRecipientMessageSize)
at Microsoft.Exchange.Transport.Categorizer.RestrictedItem.CheckDeliveryRestrictions(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.GroupItem.CheckDeliveryRestrictions(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.RestrictedItem.PreProcess(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.RecipientItem.Process(Expansion expansion)
at Micosoft.Exchange.Transport.Categorizer.Resolver.ResolveAll()
at Microsoft.Exchange.Transport.Categorizer.CategorizerComponent.Stage2ResolveEngine(TransportMailItem transportMailItem, TaskContext taskContext)
at Microsoft.Exchange.Transport.Categorizer.TaskContext.Invoke()
at Microsoft.Exchange.Transport.Categorizer.CatScheduler.JobThreadEntry(Object ignored)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
Log Name: Application
Source: MSExchange Common
Date: Date
Event ID: 4999
Task Category: General
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
Watson report about to be sent for process id: Process ID, with parameters: E12, Build Type, Version Number, edgetransport, M.E.Data.Directory, M.E.D.D.LdapFilterBuilder.LdapFilterFromQueryFilter, M.E.D.Directory.ADFilterException, XXXX, Version Number.
ErrorReportingEnabled: False
Source: MSExchange Common
Date: Date
Event ID: 4999
Task Category: General
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
Watson report about to be sent for process id: Process ID, with parameters: E12, Build Type, Version Number, edgetransport, M.E.Data.Directory, M.E.D.D.LdapFilterBuilder.LdapFilterFromQueryFilter, M.E.D.Directory.ADFilterException, XXXX, Version Number.
ErrorReportingEnabled: False