A DSS calls the GetOutOfSyncComputers method to determine what data needs to be reported to the USS.
<wsdl:operation name="GetOutOfSyncComputers"> <wsdl:input message="tns:GetOutOfSyncComputersSoapIn" /> <wsdl:output message="tns:GetOutOfSyncComputersSoapOut" /> </wsdl:operation>
The SOAP operation is as follows.
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/GetOutOfSync Computers" style="document" />
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.
MUST be present, and the total number of ComputerLastRollupNumber structures in the request MUST NOT exceed the GetOutOfSyncComputersMaxBatchSize value returned by the USS in the preceding GetRollupConfiguration call.
The USS MUST process this message as follows:
If the DoDetailedRollup value in the Server Configuration Table is FALSE, return a SOAP fault message to the DSS and stop processing the request.
If the DSS Table does not contain an entry with ServerID equal to the parentServerId value from the request, compose and return a GetOutOfSyncComputersResponse message containing an empty GetOutOfSyncComputersResult array.
Else, the USS MUST compose a GetOutOfSyncComputersResponse message in response, as follows:
The GetOutOfSyncComputersResult array is initialized to an empty array.
Use the entries in the DSS Table to construct a list containing the ServerID values of all DSSs synchronized with the update server identified by parentServerId or with one of its descendant DSSs.
For each ComputerLastRollupNumber structure in the request, get the ComputerId value and search the client computers table for an entry with a matching ComputerId value.
If an entry is found, the ParentServerID value from the entry appears on the list constructed in step 3b, and the LastReceivedRollupNumber value from the entry does not match the RollupNumber value from ComputerLastRollupNumber structure, then add the ComputerId to the GetOutOfSyncComputersResult array.
Else ignore this ComputerLastRollupNumber structure.
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.