Property collection can involve the retrieval of large amounts of data, depending on the number of properties implied in the collection request. The server supports segmented data transmission, or chunking, when it sends collected data to a client. If the amount of collected data exceeds the chunk size, the server returns a chunk of data in a single response, and indicates additional data can be retrieved.

  • The WaitForUpdatesEx method returns an UpdateSet data object. The UpdateSet.truncated property indicates whether the server has returned all the updates in its reply. The reply size can be limited by options.maxObjectUpdates in the call to WaitForUpdatesEx, or by server policy. On your first call to WaitForUpdatesEx, you can test UpdateSet.truncated in the response to see if all properties are present. If not, use UpdateSet.version in another call to WaitForUpdatesEx, repeating until UpdateSet.truncated is false. At that point, you can be sure that your client copy of the filtered properties is complete.
  • The RetrievePropertiesEx method returns a RetrieveResult data object. The RetrieveResult.token property indicates whether you must call the ContinueRetrievePropertiesEx method to retrieve additional data. If the token property has a value, it identifies chunked data. When your client application receives an indication that additional data are available, it must send the returned token in the subsequent call to ContinueRetrievePropertiexEx to retrieve the next chunk of data.

Version strings and tokens are sequenced. Your client application must keep track of the sequence of values. If an error interrupts the collection operation, resume the operation by using the version string or token that was submitted before the interruption.

For information about chunk size, see descriptions of properties RetrieveOptions.maxObjects and WaitOptions.maxObjectUpdates in the vSphere API Reference.

Note: If you resend a version string with WaitForUpdatesEx, you might receive more updates than the first time you used that version string. When you resend, the server repeats the data collection and more changes might have happened in between calls to WaitForUpdatesEx.