3.2.4.4 Content Synchronization

The DSS downloads the content files associated with the updates from the USS during this step. The protocol does not define when the file download is started. It is considered to be implementation-specific. However, the following rules MUST be followed by the DSS to determine the need to download a file:

  • CatalogOnlySync flag in the Server Configuration for this DSS is set to FALSE.

  • The file does not already exist in the Content Store.

  • Either the LazySync flag in the Server Configuration for this DSS is set to FALSE.

    OR

    If the LazySync flag is set to TRUE, the update revision associated with this file has an associated Deployment in the Deployment Table whose Action is set to "Install".

    OR

    A DownloadFiles request is received by this Update Server for this file.

  • If the file's PatchingType is "Express and" the ServerHostsPsfFiles flag in the Server Configuration for this DSS is set to TRUE.<67>

The DSS MUST synchronize content for each file that it needs to download as follows:

  1. If the CatalogOnlySync flag of the Parent USS State is set to FALSE, construct the URL as follows and download the file using the USS Content Download service:

    1. Use the USS Content Download service URL, as specified in section 2.1, and fill the server and server port, using values stored in the Parent USS Configuration data store.

    2. Set the <folder name> of the URL to the last two characters of the FileDigest that is represented in Base64.

    3. Set the <content file name> to the name of the file as given in the Revision Table.

  2. If the CatalogOnlySync flag of the Parent USS State is set to TRUE, download the file using the MUUrl for the file.

  3. When downloading from the USS, if a "File Not Found" HTTP error is received, request the USS to download the file by sending the FileDigest of the file in the DownloadFiles (section 3.1.4.11) request. An implementation MAY choose to batch multiple such failed requests within a single method call for DownloadFiles.<68>

  4. For any other error during the HTTP download of the file, the recovery action is implementation-specific and not defined by the protocol.<69>