INTRODUCTION
This article describes the Outlook
forms cache. This article also describes various forms cache problems that may occur in
Outlook 2003.
Outlook
stores a local copy of a custom form in a cache. Outlook does this so that the form does not have to be retrieved from disk every time an item is opened. When forms are stored in a Microsoft
Exchange public folder or in the Organizational Forms library on the Exchange
Server, Outlook can use the cached version of the form. This helps improve performance on the local computer and on the server computer.
Problems may occur with the forms
cache. These problems typically occur when you open a new item or an existing
item in a folder. You may receive one of the following error
messages:
Message 1
The form you selected could not be
displayed. Contact your administrator.
Message 2
The form required to view this message cannot be displayed.
Contact your administrator.
Other times, Outlook may not display
an error message but may open a default form instead of a custom
form.
back to the topLocate the form
This section describes how
Outlook locates the form that is required when an item is opened. When you first
create an item that uses a custom form, the Message Class field of the item is
set to the name of the form. For example, if you have a custom task form that is named
"Corporate" in a public folder, the message class will be
IPM.Task.Corporate.
When the item is opened, Outlook checks
the Message Class field to see what form must be used to display the item. Outlook then
conducts a search for the required form. Outlook looks in the following locations,
and in the following specified order:
- Memory
If you have another item open that uses the same form, Outlook
already has the form in memory, and Outlook uses that copy of the form instead of re-loading the
form. - Forms cache
Outlook checks the forms cache on your computer to see if you
have used the form before. If the form is located in the cache, Outlook
loads the form from the cache. - Current folder
If the form is not in the cache, Outlook checks to see if
the form was published to the current folder. Other folders, including parent
folders, are not searched. Forms that are published to a folder
are stored as hidden items and cannot be seen in any Outlook views. - Personal Forms library
If the form is not found in the current folder, Outlook checks
the Personal Forms library. The Personal Forms library is stored in the
top-level folder of the default mail store. The default mail store is the set
of folders that contain the Inbox folder that receives incoming mail. - The Organizational Forms library
If the form is not available in the Personal Forms library,
Outlook then checks the Organizational Forms library on the Microsoft
Exchange Server. - The Web Forms library
If you create an HTML-based form, publish that HTML-based form to a Web
server, and then you enable Web services in Outlook, Outlook checks for the availability of an HTML version of the form. Outlook then opens the form in your Web
browser. Typically, this feature is seldom used, but this feature may be enabled
in some organizations.
If a form cannot be found in any one of the previous locations,
the item appears in the standard form for that type of item. For example, a standard
e-mail message form may be used instead of a custom e-mail message form, or a standard contact form
may be used instead of a custom contact form.
When Outlook checks for an
updated form, the last-modified time of the form in the cache is compared to
the last-modified time of the form in the original location. If the original
location contains an updated form, Outlook downloads the updated version and
then updates the forms cache.
back to the topLocate the forms cache
You may locate the forms cache in the following folder:
C:\Documents and Settings\<user_name>\Local Settings\Application Data\Microsoft\FORMS
Outlook 2003 supports roaming users.
Therefore, the forms cache location may change. The forms cache location depends on what user is
currently logged on to the computer. You cannot configure user setting to
indicate where the forms cache is located. Therefore, you cannot
directly change the location of the forms cache to a location other than the
default location.
back to the topUnderstand the forms cache architecture
Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
The forms cache contains the Frmcache.dat file. The Frmcache.dat file contains
summary information and pointers to both the default Outlook forms and any
custom forms that you use. Cached copies of custom forms are stored in
subfolders of the Forms folder.
The subfolders of the Forms folder are
randomly named. However, the names of the subfolders look similar to the names of the forms. The actual forms
that are stored in these folders are cryptically named, but the forms have a .tmp file name extension. If you do not know the folder that contains the copy of a particular
form, you can use the time stamp of the folder or the time stamp of the form to help you locate the form.
Outlook also stores the registry keys that correspond to
custom forms that have been cached. The registry keys are at the following
location:
HKEY_CURRENT_USER\Software\Classes\CLSIDIn earlier
versions of Outlook, the forms cache did not keep track of where a form came
from when the form was cached. For example, assume that you have two different forms
that are published in two different public folders, and both forms have the same name. If
you access the first folder, the form in that folder is cached. Then, if you access the second folder, Outlook still uses the cached form from the first folder, and not the
form that is in the second folder. This means that every form name (or
Message Class field) is supposed to be unique to prevent conflicts when
you use forms. This has been the forms-cache design since Microsoft Outlook
97 was released.
The forms cache changed in Outlook 2003. In Outlook 2003, information about
the folder and the forms library is also cached. This change was made because of a
security-related issue. For example, you may have ten different public folders in Outlook 2003, all with the same
form name that is published in the ten folders. In earlier versions of Outlook, the form was
cached one time, and then Outlook used the same form from the local forms cache every time because all the forms had the same name. However, Outlook 2003 caches the
form from each folder.
back to the topUnderstand and change the forms cache size
By default, Outlook sets a limit of 2048 kilobytes (KB) for the maximum size of the
forms cache. To change this setting, follow these steps:
- On the Tools menu, click
Options.
- Click the Other tab, and then click
Advanced Options.
- Click Custom Forms, type a number that is greater
than 2048 under Maximum space on hard disk, and then click
OK.
After you reach the maximum disk space that you set for the forms cache, the
oldest unused form is purged from the cache.
Note The size of the forms cache is stored in the Frmcache.dat file.
The format of the Frmcache.dat file is undocumented. Direct
modification of the Frmcache.dat file is not supported. Therefore, there is no way
to programmatically change the size of the forms cache. Microsoft does not support direct
modifications to any part of the contents of the Forms folder unless such changes
are documented by Microsoft or recommended by Microsoft Product Support
Services for troubleshooting purposes only. Before you make any modifications
to the contents of the Forms folder, you must first make a backup copy.
back to the topRecover forms that you may have accidentally deleted
If you accidentally delete a published form, and you cannot recover that form from the folder that the form was published from, you may
be able to recover a copy of the form from the forms cache.
For additional information about recovering a form from the forms cache, click the following article number to view the article in the Microsoft Knowledge Base:
292494
OL2002: Restoring an Outlook form from a cached copy
back to the topTroubleshooting the forms cache
If the forms cache does not seem to be functioning correctly, or
if you have problems when you open items or open custom forms, there may be other
factors that cause the unexpected behavior. Use the following
troubleshooting methods before you delete the forms cache.
- Method 1
Verify that items use a one-off form
You can
store a form definition in an item instead of at a published location. If you
store a form definition in an item, and then open the item, the form that you
use is always the form that is stored in the item. If you make changes to the
published version of the form, a one-off item continues to use the older
version of the form that you stored in the item. This may appear to be a problem
with the forms cache, but this is how the one-off item works.
Determine if a form definition is stored in an item because this may
cause unexpected behavior. This may cause you to incorrectly presume that your problem
is related to the forms cache.
For additional information about how the one-off item functions, click the following article number to view the article in the Microsoft Knowledge Base:
290657
OL2002: Working with form definitions and one-off forms
- Method 2
Verify that the problem is not memory-related
Outlook may not release a form from memory. This problem may be related to how you implement
Visual Basic Scripting Edition code in a custom form. If Outlook
does not unload the form from memory, you may have to exit and
then restart Outlook. This removes the form from memory and forces Outlook to reload
the form from the cache, the forms library, or a folder.
You must also verify that Outlook exits. You can use Microsoft
Windows Task Manager to verify that Outlook is not running. However, Microsoft
recommends that you restart your computer to make sure that the problem is not
related to something that occurs in memory.
If Outlook does not exit, this may be the cause of the forms cache problem. If the form
contains Visual Basic Scripting Edition code, try to determine if there is something in the form that
causes Outlook not to exit. Also, disable any COM add-ins or
any non-standard Microsoft Exchange extensions. Either of these may be
contributing factors.
back to the topClear the forms cache
There are different methods that you can use to clear the Outlook forms cache.
Each method has advantages and disadvantages.
- Method 1
Microsoft recommends that you use the
Clear Cache method. To do this, follow these steps:- On the Tools menu, click
Options, and then click the Other tab.
- Click Advanced Options.
- In the Advanced Options box, click
Custom Forms.
- In the Custom Forms box, click
Manage Forms.
- In the Forms Manager box, click
Clear Cache.
- Method 2
If you are an advanced user, you can also resolve
problems with the forms cache by manually renaming or manually deleting specific
components of the cache that may be causing a problem. For example, if you are
having a problem with a specific form, you can start by deleting the
corresponding folder for that cached form. - Method 3
You can also rename the Frmcache.dat file. Do not do this as your first attempt to resolve
a problem with the forms cache because the Frmcache.dat file may contain information about
other forms. However, if your other efforts to clear the forms cache have failed, you can rename the
Frmcache.dat file and then restart Outlook. - Method 4
You can investigate the registry keys. The registry keys are at the following location:
HKEY_CURRENT_USER\Software\Classes\CLSID
Typically,
the registry keys do not play a role in forms cache problems, but they do contain information
about cached forms. If all other efforts to correct a problem form fail, you
can verify that this section of the registry contains information about the
form. You can remove the information about the form, and then restart Outlook.
back to the topUse the
ForceFormReload registry key
When the forms cache seems to cause problems
sporadically, and you cannot determine the cause of the problem,
you can to set the
ForceFormReload registry key in Outlook. When the
ForceFormReload registry key is enabled, and Outlook
encounters an error when opening an item that is based on a custom form, Outlook
automatically clears the cache for this specific form. Then, Outlook tries to open the
item again. While this method does not correct the cause of the forms cache
problem, this method does make the problem transparent to people who use custom
forms.
To enable the
ForceFormReload registry key functionality, follow these steps:
- Start Registry Editor.
- Click the following key in the
registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Outlook - On the Edit menu, click Add
Value, and then add the following registry value:
Value name | ForceFormReload |
Data type | REG_DWORD |
Value data | 1 |
- Quit Registry Editor.
Note This
functionality is also available in Outlook 2000 and Outlook 2002 if you have
the latest service packs installed.
For additional information about how to obtain the latest service packs, click the following article numbers to view the articles in the Microsoft Knowledge Base:
285129
OL2000: Error Message: The form you have selected...cannot be displayed, please contact your administrator
305403 OL2002: Error Message: The form you have selected...cannot be displayed, please contact your administrator
back to the topTroubleshooting form-specific problems that may occur when you open an item
If a problem occurs when you try to open an item that is based on a specific
custom form, the problem may be related to problems with that specific form and
not to the forms cache itself. The following methods describe how to troubleshoot problems with a specific form. You must do the methods in the order that they are listed.
- Method 1
You can disable the custom Visual Basic Scripting Edition code in the form. This may indicate to you that the problem is related to the Visual Basic Scripting Edition code. To do this, hold down the SHIFT key when you open an item. This prevents the Visual Basic Scripting Edition code from running. - Method 2
You can remove all
the controls from all the form pages. Custom controls on the form may have problems initializing and may prevent Outlook from opening a form. The following reasons can prevent Outlook from opening a form:- The custom controls
are not installed on the local computer.
- The licensing registry key is
incorrect.
You can open the form in design mode, remove all
the controls from all the form pages, republish the form with a different
name, and then try to open a new item that is based on the newly-published form. If
this works, there is some kind of problem with the controls. - Method 3
You can remove all the custom fields from a form. Problems may be related to the fields on a
form. Fields can contain formulas. These formulas may create circular
references that may cause performance problems or other problems that may affect how the form opens. This is not common, but if you suspect that a
form may be corrupted, you can remove all the custom fields
from the form and then publish the form with a different name for testing purposes.
back to the topUnderstand forms cache problems
Because of security changes and architectural changes, new problems occur with the forms
cache in Outlook 2003. This section discusses the known problems with the Outlook 2003 forms
cache. This section also provides information about the availability status of hotfixes. This section will be updated as new information becomes
available.
- Folder-naming problem causes Outlook 2003 to stop responding
When Outlook
repeatedly caches a form with the same name, Outlook is supposed to append a numbering
scheme to the file system folder in the forms cache. This numbering scheme
is supposed to incrementally number file names beginning with 001 and to continue numbering sequentially. However, the original version of Outlook 2003
does not handle the file names correctly. The folders are incorrectly named.
After a form is cached five times, the sixth-cached form fails. This causes Outlook stop responding.
To determine if this problem is occurring, check the forms cache on the local hard disk. Typically, the path of the
forms cache is as follows:
C:\Documents and Settings\<username>\Local Settings\Application Data\Microsoft\FORMS
There is a folder for each form that was cached. The
folder names correspond to the Message Class field of the form. If this problem has occurred, you can see zeros appended to the folder name as in the following examples:
IPM.Contact.FormName
IPM.Contact.FormName00000
IPM.Contact.FormName0000
IPM.Contact.FormName000
IPM.Contact.FormName00
Use the Clear Cache method to clear the forms
cache. The problem is temporarily resolved until more forms are cached, and then the
problem occurs again.
There
is a hotfix that is available for this problem. You can contact Product
Support Services to obtain the hotfix. This hotfix is scheduled to be included in Outlook 2003
Service Pack 1. - A problem occurs when you access a public folder by using the Favorites folder
If
you access a public folder by using the Favorites folder, and then you open items
that are based on a custom form, the form is cached every time that you open a new item or an
existing item. The Favorites folder becomes a factor in the following scenarios:- You use the Folder List navigation
pane to see all the Outlook folders, and then you access the Favorites
folder.
- You use a navigation pane for a specific type of item, such as the Calendar or the Contacts, and then you use the Other <itemtype> folder.
This list of folders is also related to using the Favorites folder.
To
temporarily work around this problem, do not use the Favorites folder. Access the folder directly by using the Folder List
navigation pane.
Note This problem increases
the caching frequency. This causes the previous problem to quickly occur again.
There is a hotfix that is available for this problem. However, install the later hotfix rollup package because the later hotfix rollup package includes other
cache-related hotfixes besides this hotfix.
833856 Outlook 2003 Hotfix Package: January 20, 2004
This hotfix is
scheduled to be included in Outlook 2003 Service Pack 1. - A crash occurs when you use the ForceFormReload registry key
Outlook 2003 permits you to
set the optional ForceFormReload registry key. In earlier versions of Outlook, the ForceFormReload registry key was used if a form did not load. Outlook
automatically deleted the forms cache entry for that form and then tried to reopen
the form. This indirectly helped to resolve many of the seemingly random forms cache
problems that occurred. However, if you use the ForceFormReload registry key with Outlook 2003,
Outlook 2003 may crash.
There is a hotfix that is available for this problem. You can
contact Product Support Services to obtain the hotfix. This hotfix is scheduled to
be included in Outlook 2003 Service Pack 1. - Outlook incorrectly caches
a form two times
Outlook may incorrectly cache
a form two times. This can eventually lead to a damaged forms cache.
There
is a hotfix that is available for this problem. You can contact Product
Support Services to obtain the hotfix. This hotfix is scheduled to be included in Outlook 2003
Service Pack 1. - Organizational Forms library problems and cached mode problems occur
There
are a variety of problems where Outlook does not cache custom forms correctly. These problems occur in
scenarios that are related to offline mode, to cached mode, and to losing connection to the
server. Most of these problems are related to publishing a form in the
Organizational Forms library. However, the scope of the problem may be greater and may include any form that is published in another location. These problems are scheduled
to be addressed in Outlook 2003 Service Pack 1, but these problems do not have hotfixes
that are associated with them. - Outlook Find command problem occurs
If you use the Outlook Find command to
filter the items that appear in a folder, and you open an item, the item may not
appear using a custom form that the item is supposed to use. This is not a forms cache problem, but may be
confused with a forms cache problem.
There is a hotfix that is available for this problem. You can
contact Product Support Services to obtain the hotfix. This hotfix is scheduled to
be included in Outlook 2003 Service Pack 1.
back to the top