共用方式為


3.1.4.17 RollupComputerStatus

A DSS calls the RollupComputerStatus method to send information on the status of updates on each of the client computers that get updates from it (or from any descendant update server) to the USS.

 <wsdl:operation name="RollupComputerStatus">
 <wsdl:input message="tns:RollupComputerStatusSoapIn" />
   <wsdl:output message="tns:RollupComputerStatusSoapOut" />
 </wsdl:operation>
  

The SOAP operation is as follows.

 <soap:operation soapAction="http://www.microsoft.com/SoftwareDistribut
 ion/RollupComputerStatus" style="document" />

Request validation:

The USS validates inputs as given in the following table. If any of the inputs are not valid, the USS MUST return a SOAP fault message to the DSS.

Input

Validation conditions

computers

MUST be present, and the total number of ComputerStatusRollupInfo structures in the request MUST NOT exceed the RollupComputerStatusMaxBatchSize value returned by the USS in the preceding GetRollupConfiguration call.

Data processing:

The USS MUST process this message as follows:

  1. If the DoDetailedRollup value in the Server Configuration Table is FALSE, return a SOAP fault message to the DSS and stop processing the request.

  2. If the USS is under heavy load, the USS MAY return RollupComputerStatusResponse message with RollupComputerStatusResult set to FALSE, and stop processing the request. This notifies the DSS that it SHOULD wait and resend the request at a later time.<60>

  3. The USS MAY use the clientTime value passed by the DSS to determine the difference between the USS system clock and DSS system clock, and adjust the other input time stamps to compensate for the difference.<61>

  4. For each ComputerStatusRollupInfo structure in the request, get the ComputerId value and search the Client Computers Table for an entry with a matching ComputerId value.

    1. If an entry is found, do the following:

      1. Set the LastReceivedRollupNumber value in the table entry to the RollupNumber value from the ComputerStatusRollupInfo structure.

      2. Set the EffectiveLastDetectionTime value in the table entry to the EffectiveLastDetectionTime value form the ComputerStatusRollupInfo structure.

      3. If the IsFullRollup value from the ComputerStatusRollupInfo structure is TRUE, remove all entries from the Update Status Table with a ComputerId value matching the ComputerId value from the ComputerStatusRollupInfo structure.

      4. For each ComputerStatusRollupUpdateStatus structure in the UpdateStatus array from the ComputerStatusRollupInfo structure, search the Update Status Table for an entry with ComputerId and UpdateID values matching the ComputerId value from the ComputerStatusRollupInfo structure, and the UpdateId value from the ComputerStatusRollupUpdateStatus structure, respectively.

        1. If an entry is found, compare the LastChangeTime value from the entry with the LastChangeTime value from the ComputerStatusRollupUpdateStatus structure.

          1. If the LastChangeTime value from the table entry is greater, ignore this ComputerStatusRollupUpdateStatus structure.

          2. Else update the State and LastChangeTime values in the table entry using the SummarizationState and LastChangeTime values, respectively, from the ComputerStatusRollupUpdateStatus structure.

        2. If no entry is found, add a new entry to the Update Status table, initializing the values as follows:

          1. Set ComputerId to the ComputerId value from the ComputerStatusRollupInfo structure.

          2. Set UpdateID, State, and LastChangeTime values to the UpdateId, SummarizationState, and LastChangeTime values from the ComputerStatusRollupUpdateStatus structure, respectively.

    2. Else ignore this ComputerStatusRollupInfo structure.

Response:

If no errors occur during processing, the USS MUST return the success response to the DSS.

If an error occurs during processing, the USS MUST return a SOAP fault indicating that an error occurred. This protocol does not define a mechanism for returning information on the cause of the failure. The DSS MUST stop the protocol when a SOAP fault is received.