Caching and streaming on-demand content

Applies To: Windows Server 2008, Windows Server 2008 R2

The WMS Cache Proxy plug-in in Windows Media Services 2008 allows the server (the cache/proxy server) to cache on-demand content from another Windows Media server (the origin server). When a client requests on-demand content, the plug-in verifies that the content is cached locally and is current. To do this, it checks the cache expiration property of the content. If the content is set to expire at a time that has already passed, the plug-in requests that the cache/proxy server open a connection to the origin server and verifies that the content in the cache matches the content on the origin server. A cache hit occurs if the content matches; a cache miss occurs if the content does not match. If the origin server is unavailable or cannot provide the requested content, the cache/proxy server returns an error message to the client stating that the content cannot be found.

If a cache hit occurs, the plug-in requests that the cache/proxy server stream the content from its cache to the client.

If a cache miss occurs, the content is purged from the cache, and the cache/proxy server downloads updated content from the origin server. The cache/proxy server then initiates another connection to the origin server to act as a proxy server to deliver the content to the client.


If a cache miss occurs when the cache/proxy server tries to stream multiple-bit-rate (MBR) content, the cache/proxy server will try to download all of the different bit rate streams from the origin server simultaneously. If you have set a bandwidth limit for outgoing distribution streams on the origin server or a limit on the incoming bandwidth for the cache/proxy server, the aggregate bandwidth of the multiple-bit-rate stream may exceed these limits. If so, the cache/proxy server cannot download the content to its cache and will only stream the content at the bandwidth requested by the client.


If content was moved to a different location on the origin server, the cache/proxy plug-in can transfer client requests to the new location. For example, if the cache/proxy plug-in receives an HTTP code 301 or 302 when checking whether content is current, the plug-in updates its internal database to recognize requests for the new location.