As I explained in "ISA Server's Caching Capabilities, Part 1," February 2004, http://www.winnetmag.com/windowssecurity, Instant Doc ID 41274, Microsoft Internet Security and Acceleration (ISA) Server 2000 is not only a firewall but also a service that accelerates Internet access by using an excellent caching functionality. The ISA Server cache stores frequently used URL objects (i.e., the content associated with URLs) in memory and in cache files on ISA Server's hard drive. Part 1 describes ISA Server's caching behavior and shows you how to configure cache routing rules and cache settings. In this article, I explain ISA Server's active caching feature, prepopulating the cache, advanced cache options, monitoring the cache, and scripts for working with the cache. ISA Server caches requests for both forward proxying (i.e., for internal clients requesting external URL objects) and reverse proxying (i.e., external clients requesting internal published URL objects), but this two-article series covers only ISA Server's forward-proxying capabilities.
Active Caching
ISA Server has an active caching feature. If you enable active caching, ISA Server determines the most frequently used URLs and retrieves them periodically from the Web server to make sure that the cache always has fresh versions of the files. You can use the Active Caching tab of the Cache Configuration Properties dialog box to configure active caching to retrieve files frequently, normally, or less frequently. To open the dialog box, open the Microsoft Management Console (MMC) ISA Management snap-in, right-click Cache Configuration under the ISA Server system you want to configure, select Properties, and go to the Active Caching tab. Note that frequent destinations don't always remain frequent and that if ISA Server uses a dial-up connection to the Internet, active caching will dial the modem.
The active caching mechanism is something of a black box. Microsoft doesn't document the algorithm that active caching uses to determine which files it caches and when it caches them. You can't specify which URLs should be actively cached (e.g., you can't create a destination set for actively cached URLs) or when. However, active caching happens when the CPU is least used, which is most likely at night when ISA Server is least used.
If you need to conserve bandwidth or if you're paying for bandwidth by the bits, use the less frequent option. Otherwise, I find it hard to suggest which option to choose because of the algorithm being unpublished. The best course is to try the different options and watch the bandwidth usage to ensure that it isn't wasted on needless caching.
Prepopulating the Cache
Instead of relying on active caching to keep the content of popular URL objects up-to-date, you can prepopulate the cache with frequently used URLs. To do so, you create a new scheduled job. In the ISA Management snap-in under the server you want to configure, go to Cache Configuration\Scheduled Content Download. Right-click Scheduled Content Download Jobs, and select New, Job to start the New Scheduled Content Download Job Wizard. After you specify a job name, the wizard prompts you for the time and date of the first job. The next screen asks you how often you want to run the job. The next screen lets you enter a URL and specify whether you want to follow links to other domains and whether you want ISA Server to cache dynamic content. The wizard's last screen, which Figure 1 shows, asks you about Time to Live (TTL) and link depth. As I mentioned in Part 1, the Web server's replies carry TTL information in the Expires header. You can override the Web server's TTL setting by selecting the first check boxAlways override object's TTLand specifying a new TTL in minutes. If you select the second check boxOverride TTL if not definedISA Server will update objects in the cache according to the settings you specified on the HTTP tab of the Cache Configuration Properties dialog boxunless the Web server has sent caching headers, which take precedence. If you select the second check box and specify a new TTL in minutes, that time takes precedence over your settings on the HTTP tab.
ISA Server's content download feature works like a Web crawler: ISA Server sends a request to the specified URL and follows each link on the initial page unless you limit the link depth on the New Scheduled Content Download Job Wizard's last screen. You can also specify a limit for the number of objects (such as Web pages or images) to be cached.
Web Figure 1 (http://www.winnetmag.com/windowssecurity, InstantDoc ID 41570) shows how the cache looks after ISA Server has downloaded content from http://www.microsoft.com. You can see the entire structure of the initial URL.