Lesson 2 Configuring Cache Properties in ISA Server
Cache properties are settings that can be configured for cache size, cache location, RAM caching, TTL parameters, active caching, negative caching, cache object restrictions, and caching behavior. These settings can be configured in the Properties dialog box of the Cache Configuration node and in the Properties dialog box of each Server located in the Drives folder in ISA Management.
After this lesson, you will be able to
Configure cache drive size and location in ISA Management
Restrict the size of objects that can be stored in the cache
Adjust the available percentage of RAM used for caching
Determine whether ISA Server should cache dynamic content
Set expiration policies for HTTP and FTP objects in the cache
Determine whether and when ISA Server should return expired objects
Enable active caching
Configure negative caching
Estimated lesson time: 45 minutes
Configuring Cache Drives
If you install ISA Server in Cache mode or Integrated mode, then, as part of the setup process, you will be prompted to select cache drives. ISA Server sets aside space to store cached data on the selected drive.
You can change your cache drive configuration at any point by selecting the Drives folder under the Cache Configuration node in ISA Management. In the details pane, double-click the server entry whose drives you want to configure.
Cache Requirements and Recommendations
You must use an NT File System (NTFS) partition for caching, and the drive must be a local drive. Typically, the best performance is obtained if you use a drive different from that on which the ISA Server application files and the Microsoft Windows 2000 operating system are installed. If you are dedicating a drive to caching, you should re-format the drive before assigning it as a cache drive.
If you want to use the ISA Server caching feature, you must install ISA Server on a computer that has at least one partition formatted as an NTFS volume. If your current server disk volume uses file allocation table (FAT) partitions, you can convert these partitions to NTFS by using Convert.exe, which is included with Microsoft Windows 2000 Server. Convert.exe does not overwrite the data on the disk. For more information on using Convert.exe, type convert /? at a command prompt.
You can select the disk drives that are available for caching during ISA Server installation. If you plan to use your ISA Server computer for caching, you should reserve as much space as possible for caching. If necessary, cache size can be increased later by adding more disk volumes.
By default, Setup searches for the largest NTFS partition and sets a default cache size of 100 megabytes (MB) if there are at least 150 MB available. When configuring the cache drives, you must allocate at least one drive and 5 MB for caching. However, it is recommended that you allocate at least 100 MB and add 0.5 MB for each Web Proxy client, rounded up to the nearest full megabyte.
You might also want to change the default for the ISA Server cache to your fastest hard disk drive, preferably a small computer system interface (SCSI) drive that has adequate free space.
Windows 2000 allows you to format a drive without assigning a letter. However, ISA Server caching does not recognize these drives.
Configuring Size and Location
For each server, you can configure the size and location of the cache used by the Web Proxy service. It is recommended that you allocate a large cache, since objects are dropped from the cache when it reaches its capacity.
Follow these steps to configure cache size on a server:
In the console tree of ISA Management, expand the Cache Configuration node and then click Drives.
In the details pane, right-click the applicable server, and then click Properties.
Click the desired NTFS drive.
In the Maximum Cache Size (MB) text box, type the size of the cache, and then click Set.
Click OK.
You can also configure the percentage of total memory to use for caching.
Follow these steps to configure percentage of available memory to use for caching:
In the console tree of ISA Management, right-click the Cache Configuration node, and then click Properties.
On the Advanced tab, in the Percentage Of Free Memory To Use For Caching text box, type a number between 1 and 100 that specifies the maximum percentage of memory that should be allocated for caching.
Click OK.
When you modify cache properties, the Web Proxy service is stopped and restarted.
Cache Content Files
When you configure a drive for caching (Figure 5.4), ISA Server creates a cache content file on that drive with a .cdat extension. This file is created in the Urlcache folder.

Figure 5.4 Configuring a cache drive and content file
There is a cache content file for each 10 GB of allocated cache space on a disk. For example, if you allocate 12 GB of disk space on a particular drive, ISA Server creates two cache content files. The first file will be 10 GB and the second file will be 2 GB.
As objects are cached, ISA Server appends them to the cache content file. If the cache content file is too full to hold a new object, ISA Server removes older objects from the cache, using a formula that evaluates age, how often the object is accessed, and size.
Do not modify or delete the cache content files.
Configuring How ISA Server Caches Objects
Though routing rules allow you to specify which content should be cached according to destination and according to content type (dynamic versus static), the Cache Configuration Properties dialog box allows you to specify with more precision which objects should be cached, and when.
Configuring Which Content to Cache
You can configure whether ISA Server should cache the following types of HTTP objects:
Objects larger than a specified size
Objects whose last modification date is not specified
Objects that do not have a 200 (normal) response
Objects with question marks in their URL
Follow these steps to configure which content to cache:
In the console tree of ISA Management, right-click the Cache Configuration node, and then click Properties.
On the Advanced tab, do one or more of the following:
To limit size of cached objects, select the Do Not Cache Objects Larger Than check box and type the size and select the unit (KB, MB, GB).
To cache objects for which a last modification time is not specified, select the Cache Objects That Have An Unspecified Last Modification Time check box.
To cache dynamic content, select the Cache Dynamic Content (Objects With Question Marks In The URL) check box.
Click OK.
To limit maximum size of URLs cached in memory, in the Maximum Size Of URL Cached In Memory (Bytes) text box, type the maximum number of bytes that can be cached.
In an SSL bridging scenario, ISA Server can cache HTTP and SSL objects. You can use the FPCWebRequestConfiguration COM object to configure whether SSL objects should be cached. For more information, see the ISA Server Software Development Kit.
RAM Caching
ISA Server caches objects to RAM and to the disk. Objects cached to memory can be retrieved faster than objects cached to the disk. By default, objects smaller than 12,800 bytes are stored in RAM and on the disk. By default, all larger objects are cached only to the disk.
You can modify the maximum size of objects that can be stored in memory from the Advanced tab of the Cache Configuration Properties dialog box.
Response Headers
ISA Server does not cache responses to requests that contain the following HTTP response headers:
cache-control: no-cache
cache-control: private
pragma: no-cache
www-authenticate
set-cookie
Request Headers
In addition, the ISA Server computer does not cache responses to requests that contain the following HTTP request headers:
authorization, unless the origin server explicitly allowed this by including 'cache-control: public' header in the response
cache-control: no-store
Configuring Expiration Policy
ISA Server features highly configurable expiration policies. For HTTP and FTP objects, you can choose whether or not to activate caching, and you can configure the expiration policy. You can also configure whether to return expired objects, under specific circumstances.
HTTP Object Caching
ISA Server can keep and use expired objects in the cache for a specified amount of time if the source Internet site for an object becomes unavailable. An expired object is an object whose TTL period has run out. Expiration policy balances your organization's need for fresh, current data against network performance. Depending on your particular organization's need, you can specify one of the following expiration policies for HTTP objects, as shown in Figure 5.5:
Frequently. This means that objects in the cache will be more current, although there may be a degradation in network performance because objects are retrieved more regularly from the Internet.
Less frequently. This means that objects in the cache will be less current, but network performance will not suffer.
Normally. This balanced approach is the default. Objects are updated somewhat frequently, but network performance is not ignored.
Custom settings. You can set TTL to zero or to a specified percentage of the content's age. The higher the percentage, the less frequently the cache is updated.

Figure 5.5 Caching properties for HTTP
Follow these steps to configure HTTP caching:
In the console tree of ISA Management, right-click the Cache Configuration node, and then click Properties.
On the HTTP tab, select the Enable HTTP Caching check box.
Click one of the following options:
If it is more important to make current information available, click the Frequently (Expire Immediately) radio button. This option sets the TTL period to 0.
To balance between current information and system load, click the Normally radio button.
If it is more important to lessen the system load, click the Less Frequently (Reduced Network Traffic Is More Important) radio button. This option also sets the TTL period to a longer duration.
To customize the HTTP cache expiration policy, click the Set Time To Live (TTL) Of Object In Cache To radio button.
If you selected the Set Time To Live (TTL) Of Object In Cache To radio button, configure the following options:
To require objects to expire after a percentage of their age has elapsed, enter a percentage in the This Percentage Of Content Age (Time Since Creation Or Modification) text box.
To specify the minimum and maximum length of time that HTTP objects should remain in the cache:
In the No Less Than text box and adjacent drop-down list box, type in a number and specify a unit of time.
In the No More Than text box and adjacent drop-down list box, type in a number and specify a unit of time.
Click OK.
To reset HTTP expiration policy to equal importance, click Restore Defaults.
FTP Object Caching
You can configure how FTP objects are maintained in the ISA Server cache. As shown in Figure 5.6, for FTP objects you can choose whether or not to activate caching, and you can configure the TTL period for all objects.
By default, the TTL for all FTP objects is set to one day (1440 minutes).

Figure 5.6 Caching properties for FTP
Follow these steps to configure FTP caching:
In the console tree of ISA Management, right-click the Cache Configuration node, and then click Properties.
On the FTP tab, select the Enable FTP Caching check box.
In the Time To Live For All Objects text box, type the TTL for all FTP objects.
In the drop-down list box, select a unit of time: Seconds, Minutes, Hours, Days, or Weeks.
Click OK.
To reset FTP caching policy to the default settings, click Restore Defaults.
Returning Expired Objects
Objects stored in the cache are marked with a TTL. When an object's TTL passes, the object has expired. When a client requests an object, ISA Server checks to see whether a valid version of the object is in its cache. If so, the object is returned. Otherwise, depending on the cache policy, ISA Server requests the object from the specified Web server.
If the Web server is accessible, ISA Server retrieves the object and returns it to the client. If the Web server is not accessible, you can configure ISA Server to return an expired version of the object from the ISA Server cache.
You can configure ISA Server to return expired objects on the Advanced tab of the Cache Configuration Properties dialog box, as shown in Figure 5.7.

Figure 5.7 Advanced caching properties
Follow these steps to configure whether to return expired objects from the cache:
In the console tree of ISA Management, right-click the Cache Configuration node, and then click Properties.
On the Advanced tab, select one of the following options:
The Do Not Return The Expired Object (Return An Error Page) radio button. If you select this option, an error page will be returned.
The Return The Expired Object Only If Expiration Was radio button. This option returns an expired version of the object from the ISA Server cache.
If you chose to return the expired object, specify the TTL limits for the object.
In the At Less Than This Percentage Of Original Time To Live text box, specify the maximum percentage of the TTL. If the expiration time exceeds this, the object is not returned.
In the But No More Than (Minutes) text box, specify the maximum number of minutes that passed since the object expired. If the expiration time exceeds this, the object is not returned.
Click OK.
Configuring Active Caching
With active caching enabled, ISA Server analyzes objects that are in the cache to determine which are most frequently accessed. When popular objects in the cache are about to expire, ISA Server automatically refreshes the content in the cache.
When active caching is enabled, if you are using a dial-up connection to the Internet, the computer will dial out to the Internet Service Provider (ISP) when retrieving this content.
You can configure the active caching policy. Select one of the following:
Frequently. In this case, frequently requested objects are downloaded to the cache regularly, as they are about to expire. This helps ensure that an object requested by a client will be in the cache.
Normally. This balanced approach is the default. Objects are updated somewhat frequently, but network performance is not ignored.
Less Frequently. Some frequently requested objects will be downloaded to the cache. Although there is less likelihood that the object will be fresh and in the cache, network performance may be improved, since active caching is at a minimum.
Follow these steps to configure active caching:
In the console tree of ISA Management, right-click the Cache Configuration node, and then click Properties.
On the Active Caching tab, select the Enable Active Caching check box.
Do one of the following:
If the ISA Server should refresh and revalidate previously cached objects before they expire, click the Frequently radio button.
If the ISA Server should balance between fast response and network load, click the Normally radio button.
If you do not want to add to the network load, click the Less Frequently radio button.
Click OK.
Configuring Negative Caching
When ISA Server cannot retrieve an object from a specific Web server, the response may be cached. This is referred to as negative caching. You can configure negative caching, specifying that error responses to client requests should be cached.
When you configure negative caching, you specify that HTTP objects with the following status code should be cached: 203, 300, 301, and 410.
Follow these steps to configure negative caching:
In the console tree of ISA Management, right-click the Cache Configuration node, and then click Properties.
On the Advanced tab, select the Cache Objects Even If They Do Not Have An HTTP Status Code Of 200 check box.
Click OK.
Practice 1: Enabling Active Caching
This exercise allows you to enable active caching with default parameters.
To enable active caching
In ISA Management, navigate to Servers and Arrays, MyArray, Cache Configuration.
Right-click on the Cache Configuration node and click Properties.The Cache Configuration Properties dialog box appears.
Click the Active Caching tab.
Click the Enable Active Caching check box.The radio buttons under Retrieve Files appear and the Normally radio button is selected.
Click OK.
Practice 2: Adjusting the Amount of RAM Used for Caching
This exercise allows you to change the percentage of available RAM used for caching from the default of 50 percent to 65 percent.
To adjust the percentage of available memory used for caching
In ISA Management, navigate to Servers And Arrays, MyArray, Cache Configuration.
Right-click the Cache Configuration node and click Properties.The Cache Configuration Properties dialog box appears.
Click the Advanced tab.
In the Percentage Of Free Memory To Use For Caching text box, replace the default of 50 by typing 65.
Click OK.The ISA Server Warning dialog box appears.
Click the Save The Changes And Restart The Service(s) radio button, and then click OK.
Lesson Summary
Cache properties can be configured in the properties dialog box of the Cache Configuration node and in the properties dialog box of each server in the Drives folder in ISA Management.
You can configure the size and location of the cache from the Properties dialog box of each cache server.
In the Cache Configuration Properties dialog box, you can configure FTP caching, configure HTTP caching, set expiration policies, determine when to return cached objects, restrict the size of objects to be cached, configure the percentage of available RAM to be used for caching, enable active caching, and configure negative caching.