From working with customers there seems to be some confusion around how Free Busy information is generated and read by the client. There is even further confusion about how to balance Free Busy access across multiple sites. In this post I hope to clear most of that up and provide some guidance that will help you prevent issues with Free Busy.
The Standard Generation Process
The biggest thing that most people I talk to about Free Busy don't understand is that the generation of the Free Busy data is the responsibility of the client not the server in the vast majority of cases. To help people understand this it is usually best to just walk thru a publishing scenario.
1. End user updates their Calendar with a new appointment
2. Outlook determines that the Calendar has been dirtied and goes to update Free Busy; or we hit the user defined publishing interval.
3. Outlook uses the users LegacyExchangeDN to determine what Public folder it will publish the information in.
4. Outlook makes a connection to the public folder server and locates the nearest replica of the appropriate folder.
5. Outlook overwrites any existing Free Busy data with a new Free Busy message containing the current information.
As we can see in this case the server is acting only as a repository for the information. It is the actual Outlook client that is responsible for generating and publishing the message to the server.
So the question that naturally comes up now is what about OWA and clients besides Outlook. If I make a change to my calendar in OWA it still updates my Free Busy but my Outlook client was not running, how does that happen.
In that case since we do not have an outlook client running it does become the responsibility of the server to publish the clients Free Busy information. The process that is responsible for this is called MadFB or MSExchangeFBPublish. This process runs under the system attendant mailbox and updates Free Busy every 5 minutes for OWA, OMA, and Entourage clients.
The process is actually very similar to the Outlook publishing process it just changes who actually updates the message.
1. OWA client makes a change to their calendar
2. When the change is committed a Free/Busy message is submitted to the System Attendant mailbox on the mailbox server for the user.
3. The MadFB process polls this mailbox and picks up that there has been a change.
4. MadFB then publishes the users full Free/Busy message to the Free/Busy folder overwriting the existing message.
So the basic process here is exactly the same as with outlook just who is publishing the message to the folder is slightly different.
Where to put Free/Busy folders
Where you locate your Free/Busy folders in your environment really comes down to one simple question. Do you require your Free/Busy information to Always be accurate when viewed by the end user? If the answer to this question is yes then you cannot place a replica of your free busy folder on any server in the org. You have to restrict yourself to only one replica org wide.
Any time you add a replica of the Free/Busy folder to another server you will introduce replication lag into the mix. This Public folder replication lag will ensure that the replica of the folder does not have exactly the same information as other replicas and thus your Free/Busy information will not always be accurate.
The only time where Free/Busy replicas really makes sense is in the case where you will have people regularly needing Free/Busy information from others that are in a different physical location and are separated by a very slow link. In this case they would not be able to make a consistent connection to the public folder server in the other site to get the needed Free/Busy information. Some lag is acceptable in this case so that the end client has a better experience when accessing the needed information.
Free/Busy problems usually present as either hash marks indicating no data available or as "incorrect" information showing up to the end users. These problems typically come down to either the message is not there, has not replicated, or is replicating slower than expected.
Using OWA we can easily determine if the message is there. Using the ESM locate the public folder stores that contain replicas of the Free/Busy folder for the user whose free busy you are having problems viewing. Connect to the stores using the following address: "http(s)://<PF Server>/Non_IPM_Subtree". Then browse to the correct Free/Busy folder for the user you are having problems seeing information on. Now you can verify if the message is there or if there are any duplicates or other problems.
If the message is missing on one store but not the other then you have a public folder replication issue and should address it as such. Bill Long has written some excellent blogs on dealing with public folder replication that I have linked to at the end of this article.
If you find that the message is completely not there then I would recommend first refreshing the client Free/Busy information. The easy way to do this is to log into the clients mailbox with outlook using the /cleanfreebusy switch when launching outlook (this is easily done from the run window). This will remove any messages that outlook can find and then republish the whole Free/Busy message. This should either work and correct your issue or throw an error message about being unable to publish Free/Busy. If it generates an error then researching that error code in KB should provide you some direction on what is blocking the upload.
When we are dealing with Free/Busy information that appears to be incorrect it is generally caused by public folder replication latency. Since outlook and OWA always publish the full Free/Busy message and don't do any incremental updates replication is typically the only way two clients should see different Free/Busy information for the same target user. Correcting this issue usually boils down to reducing the number of replicas or educating the end user in the case where replicas are needed.
The Exchange product group has worked hard with the next version of Exchange to make this process much simpler, more reliable, and more accurate. When using Exchange 2007 with Outlook 2007 you will no longer get Free/Busy information from a public folder but will instead us the availability service. This service will provide you with a direct look at the person Free/Busy information without the need of a client publishing any data. Outlook 2007 and Exchange 2007 can still use and will still have the Free/Busy public folder for backwards compatibility with older outlook clients.
Hopefully this has provided you with some useful information on how Free/Busy publication works. It is really not a very complex process. Some basic understanding of the publishing process and a good grasp on how your company uses Free/Busy will go a long way in clearing up any issue with Free/Busy you may be having.
Publishing Free/Busy Data
313569 XADM: CDO Changed to Regenerate Public Free-and-Busy Message
Bill Long's Public folder posts on this blog:
The free/busy data story
OWA Free/Busy posting process