Exchange public folders search fail: Error while crawling LOB contents
July 23, 2013 Leave a comment
Crawling fails for Large Exchange Public Folders
Recently I faced an interesting issue with crawling exchange public folders with SharePoint Search. I’d like to share a few details and a solutions that fixes it.
Our Exchange Public Folder crawling fails with “Internal Error Occured” messages. Interestingly but not all folder fail to crawl, only several ones.
exchange://XXXX.XXXX.XXX/owa/? ae=Folder&t=IPF.Note &id=PSF.LgAAAAAaRHOQq &pspid=_1349876110817_788781350 &s_p=https&s_ce=0000000g1q0enrplrak9g67lu00000000
Error while crawling LOB contents. ( An internal server error occurred. Try again later. )
This issues reproduced on FAST Search for SharePoint, as well as for SharePoint 2010 Enterprise Search. Later on we tested it on SharePoint 2013 Search and still had the same problem. In depth examination of ULS logs revealed following errors.
03/14/2013 16:00:42.51 mssdmn.exe (0x11EC) 0x1D00 SharePoint Server Search FilterDaemon e4ye High FLTRDMN: Errorinfo is “An internal server error occurred. Try again later.” [fltrsink.cxx:553] d:\office\source\search\native\mssdmn\fltrsink.cxx
03/14/2013 16:00:42.51 mssearch.exe (0x06B0) 0x22DC SharePoint Server Search GatherSvc fus3 Medium Transaction failed in plugin RHTG Url pf://xxxx.xxxx.com/owa/? ae=Folder &t=IPF.Note &id=PSF.AEpHAAAB &pspid=_1363252609418_378466705 Error 0x8004fd11 [gthrtrx.cxx:1042] d:\office\source\search\native\gather\gthrsvc\gthrtrx.cxx
After various troubleshooting sessions with Microsoft Support Services we identified that only folders with 500+ messages fail to be crawled.
Problem Solution
It turned out that it was Exchange Server throttling that caused such behavior. In order to resolve this issue you need to apply two fixes.
1. Disable Throttling for the Default Access Account of SharePoint on Exchange
- Open Microsoft Exchange Management Shell on your Exchange Database Server, then
- Start > Microsoft Exchange Server 2010 > Exchange Management Shell;
- Execute:
- New-ThrottlingPolicy SharePoint //this will create new Throttling policy with name “SharePoint”;
- Execute:
- Set-ThrottlingPolicy SharePoint -RCAMaxConcurrency $NULL -RCAPercentTimeInCAS $NULL -RCAPercentTimeInMailboxRPC $NULL -RCAPercentTimeInAD $NULL -EWSMaxConcurrency $NULL -EWSPercentTimeInAD $NULL -EWSPercentTimeinCAS $NULL -EWSPercentTimeInMailboxRPC $NULL -EWSMaxSubscriptions $NULL -EWSFastSearchTimeoutInSeconds $NULL -EWSFindCountLimit $NULL
- If you have Microsoft Exchange Server is 2010 SP1, then execute:
- Set-ThrottlingPolicy SharePoint -CPAMaxConcurrency $NULL -CPAPercentTimeInCAS $NULL -CPAPercentTimeInMailboxRPC $NULL
- In order to validate correct settings execute:
- Get-ThrottlingPolicy SharePoint
- Following properties should not have any value:
- CPAMaxConcurrency (Exchange 2010 SP1)
- CPAPercentTimeInCAS (Exchange 2010 SP1)
- CPAPercentTimeInMailboxRPC (Exchange 2010 SP1)
- EWSMaxConcurrency
- EWSPercentTimeInAD
- EWSPercentTimeInCAS
- EWSPercentTimeInMailboxRPC
- EWSMaxSubscriptions
- EWSFastSearchTimeoutInSeconds
- EWSFindCountLimit
- RCAMaxConcurrency
- RCAPercentTimeInAD
- RCAPercentTimeInCAS
- RCAPercentTimeInMailboxRPC
- To apply Throttling policy for SharePoint account – execute:
- Set-Mailbox <Domain>\<UserName-DefaultContentAccessAccount> -ThrottlingPolicy SharePoint
2. Increase max concurrent objects for Exchange session on Exchange Servers
- On you Exchange Database Server open following registry folder:
- HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem\
- Create new key
- MaxObjsPerMapiSession
- Create new Dword (32-bit) entry
- objtFolder and assign value 1000 ;
- Create new Dword (32-bit) entry
- objtMessage and assign value 500;
- Reboot Exchange servers
- Do Full recrawl of you Content Source
Enjoy! Your large exchange folders should be successfully crawled now!