For companies that have a mixed 2003/2007 environment and fall under one of the following states might see problems when querying legacy Free/Busy information:
Event ID : 4004Category : Availability ServiceSource : MSExchange AvailabilityType : WarningGenerated : 27.09.2007 08:16:08Machine : ExchangeServer01Message : Process 2148[w3wp.exe:/LM/W3SVC/1/ROOT/EWS-1-128353572646987287]: Unable to find a public folder server for organizational unit (OU) CompanyUsers. The service will attempt to find a random server, which may take a longer time to service the request.
Looking deeper in to this event we can see the following:
<data name="PublicFolderServerNotFoundForOU"><stringvalue>Process %1: Unable to find a public folder server for organizational unit (OU) %2. The service will attempt to find a random server, which may take a longer time to service the request.</stringvalue><eventmessageid>4004</eventmessageid><eventtype>Warning</eventtype><severity>Error</severity><facility>Interface</facility><language>English</language><category>Availability Service</category><level>Lowest</level><period>LogPeriodic</period><comment>Indicates a failure to find the server to look up free busy information for legacy mailbox(es).</comment></data>
Currently there are a few causes for this (More to be added later):
Here is a high level overview on what happens when an Outlook client makes a Free/Busy request:
Reason servers get added to the badServers listIf for any reason you have any connection issues or we can not find what we are looking for at the time of the query we will add the server to the bad list. Once this happens the server will stay inthe list unntil you restart the MSExchangeServicesAppPool, recycle the services or a successful query is made.
How to fix
Item #1The problem here is that the legacyExchangeDN for the user is invalid. In order for the Availability service to work it needs to the correct legacyExchangeDN for the user so it can look up that users homeServer and then from there get the list of public folders. If we bind to an invalid legacyExchangeDN the domain controller we are querying will throw an DS_NO_SUCH_OBJECT error which gets returned back to exchange and then the query fails. Once the legacyExchangeDN is corrected this problem should go away.
Item #2The fix is for you to put Free/Busy replica's on each of your servers in that administrative group. This is not an optimal fix but is required to fix this problem. Currently this is by design and there is no way to force the availability service to pickup Free/Busy data from a specific PF server.
PingBack from http://msdnrss.thecoderblogs.com/2008/02/02/looking-up-freebusy-information-in-a-mixed-org-e2k3e2k7-will-return-a-4004-error/
Business Email System Penetration Varies Greatly by Customer Size, Industry and More, says Ferris Research