Free Busy generation process


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.


Non-Outlook Publishing


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.


Troubleshooting


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.


What's Next


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.


Conclusion


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.


Links


Publishing Free/Busy Data
http://www.microsoft.com/technet/prodtechnol/exchange/guides/WorkingE2k3Store/36ea912b-6040-499d-948b-762bec84e8fc.mspx?mfr=true
313569 XADM: CDO Changed to Regenerate Public Free-and-Busy Message
http://support.microsoft.com/default.aspx?scid=kb;EN-US;313569
Bill Long's Public folder posts on this blog:
http://msexchangeteam.com/search/SearchResults.aspx?q=bill+public+folder
The free/busy data story
http://msexchangeteam.com/archive/2004/06/02/146939.aspx
OWA Free/Busy posting process
http://msexchangeteam.com/archive/2004/08/19/217187.aspx


- Matthew Byrd


 


Comments (15)
  1. I have a question regarding E2007: Is it a correct assumption that if the client(OL2007) uses the availability service for retrieving the data in real time, that only the server is involved in creating the Free/Busy data and no longer the client?

    Thanks

    Christian

  2. Tony Woodruff says:

    Question:  Because public folders are no longer used in Exchange 2007 for Free/Busy, does that lessen the reliance on the LegacyExchangeDN property in AD?

    We have many user objects that have been renamed, married/divorced and the like, and whose old LegacyDN appears in various places about – including some cached Outlook addressing.  We would love to see that field go away!

  3. Henning says:

    Hi,

    I have a question regarding the updating process. When you connect directly with an own mapi profile to an ressource mailbox you can control the free/busy publishing range with the outlook settings.

    When a user has the ressource mailbox attached to his own mailbox mapi profile and makes a new appointment in the ressource mailbox, i have realized that the default free/busy range "2 months" is used for this mailbox. It seems so that the previous Settings were overwritten.

    Is it possible to control this behavior with the "FBPublishMonth" registry key?

  4. Matthew Byrd says:

    Hi Christain,

    Thank you for your Question … I had to do some digging with our Beta engineers to get this answer.

    In a Pure E2K7 O2K7 environment the client is not responsible for Generating the avaliblity data in any way shape or form.  The avalibility data is generated on the fly by the server when the information is requested.

    -Matt

  5. Matt,

    thanks for the answer. This is good news…

    Christian

  6. Matthew Byrd says:

    Hi Henning,

    So I did a bit of digging on it as well and it appears the the LegacyDN is still used by Outlook and Exchange.  But at least this gets rid of one more thing we are using it for.

    -Matt

  7. Henning says:

    Hi Matthew,

    thanks for your prompt answer. I forgot to say, that my question only referred to ex2k3.

    Sorry ’bout that.

    Henning

  8. girardsc says:

    Ok I have poured over tons of information about Free/Busy and mabe

    and maybe I missed the boat on something that you may

    be able to clarify.  Here is the scenario lets say I am

    booking a appt as tenative to a coworker that is out of

    the office meaning that he is not logged in Outlook or OWA.

    How or when should the FB information populate?  Is it the

    servers responsibilty to populate the info or is it client

    driven?

  9. Henning says:

    Hi giradsc,

    that’s what i suppose. Because the time data of the appointment will be published in the free/busy folder on the exchange server a bit later.

    In that case the Server must responsable for publishing.

  10. girardsc says:

    Hi Henning,

    Thanks for the quick response.  Ok so now with that being said what do you think about this added to that scenario.  Same users and sometimes information updates and other times it does not. Sometimes it will update when the user has Outlook open, sometimes when the users are out of the office it does not update some time is does.  So would this be due to the FB or is it a calendar connector issue?  I am really at wits end to take a look at, any direction right now would be greatly appreciated.

  11. Henning says:

    Hi giradsc,

    well let me see. Do you have an calender connector (Lotus Notes?) which updates FB data?

    Generally said, if there is an appointment in the calendar the FB Data will be updated (however ;-). In outlook you can automatically accept or deny meeting requests. Maybe some of your users have enabled this feature.

  12. girardsc says:

    Hello again Henning.  Well no Lotus Notes the entire system is Outlook 2003 and Exchange 2003.  I do not have calendar connector installed.I was under the impression that I did not need that installed? Since it was just Exchange and Outlook am I wrong about that?  Also auto accept is not turned on for any user.

  13. Matthew Byrd says:

    Hi Henning and Girardsc,

    To address your question the rule on Free Busy updating is very simple.  Unless you booked the meeting thru OWA then the Client is ALWAYS responsible for updating the Free/Busy information.  There is no server process in Exchange 2003 that will update a Mapi initiated meeting request on someones Free/Busy.

    Now … you can see what you would think would be unexpected behavior because it is possible for one Outlook Client to update another users Free Busy information.  This is usually in the case of delegate.  Also if you have something like BlackBerry or other similar software in the organization … many of thoses will update your calendar and I think your Free/Busy for you.

    But from a Pure Microsoft stand point … the server is Not Responsible for updating Free/Busy information (unless the information was submitted with OWA).

    Hope this clears this up.

    Matt

  14. Henning says:

    Hi girardsc,

    of course, you don’t need the calender connector if you don’t have lotus notes. Are you sure that no user has enabled auto accept? Because this is a user client site option. You cannot see as administrator whether a user has enabled this. Otherwise i don’t have any further idea.

  15. Eknath says:

    By default, Outlook client publishes 2 Months of FB. When a calendar event is created during a mid of month (eg june 10), we find that the FB information is publiched until July 31st.

    One would expect it to be Aug 09?

Comments are closed.

Skip to main content