none
Implement ActiveSync Client question: General command – GetItemEstimate RRS feed

  • Question

  • To dear Microsoft developers,

    Recently I have surveyed ActiveSync Protocol document, and encountered an unsolved problem:

    During the first synchronization to an email inbox folder, I noticed something weird to the estimation number which is responded by GetItemEstimate command. The command result says I will get 61 changes in the later Sync-GetChanges procedure. However, there are only 22 mails left in my inbox folder.

    After the later GetChanges procedure I found this estimation number may represent the maximal ItemId (and plus 1) among the mail items in this folder like, "<ServerId>1:60</ServerId>". Since the document I surveyed does not mention this behavior, do I make something wrong or this behavior will vary from version to version of the protocol?

    Thanks for your help

    P.s. I implement my client protocol with ActiveSync version 2.5

    Best regards,
    Nicholas
    Monday, December 29, 2008 9:26 AM

Answers

  •  

    GetItemEstimate can be used on an unsynchronized folder but as the method name declares it is an ‘estimate’.  In Exchange Server 2007  there have been improvements that make the estimate to be more accurate but it is still an estimate.  Feedback from development is there is currently no mechanism that allows you to retrieve the actual number.

     

    One thing you should be aware of is that support for Exchange Server Protocols fall under the Interoperability Principles.  Interoperability Principles covers client protocols to interoperate with Exchange Server 2007.   The version of Exchange ActiveSync (EAS) that ships with Exchange Server 2007 is 12.1.  This is what is supported by this interoperability forum.

     

    Support for older versions of EAS protocol, such as 2.5, is handled as a paid service engagement with Microsoft Partner Advantage Services (MSPA).   If you are interested please contact your Microsoft licensing contact and they will redirect you the appropriate people to get you started.

     

    Dominic Salemno
    SENIOR SUPPORT ESCALATION ENGINEER

    Thursday, January 29, 2009 8:09 PM

All replies

  •  Nicholas,

      Thanks for your question.  One of our team member will start working on your case and get back to you.


    Hongwei Sun -MSFT
    Monday, December 29, 2008 4:33 PM
  • Nicholas,

    Greetings! I am the engineer who will be working with you to resolve this issue. I am assuming you are referencing the latest documentation ([MS-ASCMD].pdf v1.0)? This may indeed be an issue with the document in which the behavior needs to be described in greater detail. Is it possible to include a *sample* GetItemEstimate Request and Response? Please remove any sensitive information as this is a public forum and viewable by the world.

    Thank you!

    Dominic Salemno

    SENIOR SUPPORT ESCALATION ENGINEER

    Friday, January 2, 2009 4:53 PM
  • To dear Dominic,

    Sure:-) and here following is my request and response example:

    (p.s. it's a GetItemEstimate at the first beginning of a total synchronization, and actually there are only 25 and 8 mail items in these two folders respectively. However I got response of 45 and 55 items.)

    Thanks for your help again ;-)

    Best regards,
    Nicholas

    [Request XML]
    1<?xml version="1.0" encoding="utf-8"?> 
    2<GetItemEstimate xmlns="GetItemEstimate:" xmlns:Air="AirSync:"
    3<Collections> 
    4    <Collection> 
    5    <Class>Email</Class> 
    6    <CollectionId>[HIDE, it's the inbox's collection id]</CollectionId> 
    7    <Air:FilterType>0</Air:FilterType> 
    8    <Air:SyncKey>[HIDE]</Air:SyncKey> 
    9    </Collection> 
    10    <Collection> 
    11    <Class>Email</Class> 
    12    <CollectionId>[HIDE, it's a sub-folder under the inbox folder]</CollectionId> 
    13    <Air:FilterType>0</Air:FilterType> 
    14    <Air:SyncKey>[HIDE]</Air:SyncKey> 
    15    </Collection> 
    16</Collections> 
    17</GetItemEstimate> 


    [Response XML]
    1<?xml version="1.0"?> 
    2<GetItemEstimate xmlns="ItemEstimate"
    3 <Response> 
    4  <Status>1</Status> 
    5  <Collection> 
    6   <Class>Email</Class> 
    7   <CollectionId>[HIDE, it's the inbox's collection id]</CollectionId> 
    8   <Estimate>45</Estimate> 
    9  </Collection> 
    10 </Response> 
    11 <Response> 
    12  <Status>1</Status> 
    13  <Collection> 
    14   <Class>Email</Class> 
    15   <CollectionId>[HIDE, it's a sub-folder under the inbox folder]</CollectionId> 
    16   <Estimate>55</Estimate> 
    17  </Collection> 
    18 </Response> 
    19</GetItemEstimate> 

    • Edited by Nicholas Chien Monday, January 5, 2009 6:27 AM a simple example for Dominic to find out problem
    Monday, January 5, 2009 6:23 AM
  • Nicholas,

    I am still investigating your issue. I will be contacting you soon with more information.

    Dominic Salemno

    SENIOR SUPPORT ESCALATION ENGINEER

    Thursday, January 8, 2009 6:57 PM
  • to dear Dominic,

    Thanks for your help :-)
    By the way, I found an information in the document, does this help us?

    "When few items have to be synchronized, the actual value may be inaccurate. Do not rely on GetItemEstimate as the sole indication that the folder contains items that have to be synchronized."

    However, the number of 55 (GetItemEstimate) and 25 (actual items) is still way too much, is there a way to "reset" this situation back to normal? Or could making a full synchronization first be the only way to solve this?

    Best regards,
    Nicholas
    Friday, January 9, 2009 6:13 AM
  • Nicholas,

    I believe there may be an issue with the documentation. I am searching for those two sentences in the documentation, but do not see them in the latest version. Which version of the documentation are you referencing and which particular document? The page number as well will be very helpful!

    The document version will be included on the first page underneath Revision Summary, and also subsequent pages on the bottom of each page.

    Thanks!

    Dominic Salemno

    SENIOR SUPPORT ESCALATION ENGINEER

     

    Monday, January 12, 2009 6:18 PM
  • to dear Dominic,

    I refer to an older version of the ActiveSync protocol document (Since the latest version has only information about the protocol 12.1, and we choose version 2.5 to implement), and the version number it has is 2.0.17. The "notice" section I saw is in the Page 110 of this document. The section below this notice also mentions that the GetItemEstimate can not be used on an unsynchronized folder. I wonder whether this could be the cause?

    Best regards,
    Nicholas
    Tuesday, January 13, 2009 5:42 AM
  • Nicholas,

    I forwarded this issue on to my colleagues for resolution and will keep you informed of the progress.

    Dominic Salemno

    SENIOR SUPPORT ESCALATION ENGINEER

     

    Tuesday, January 27, 2009 6:07 PM
  • Nicholas,

    Are you experiencing this behavior against Exchange 2007?

    Dominic Salemno

    SENIOR SUPPORT ESCALATION ENGINEER

     

    Tuesday, January 27, 2009 7:12 PM
  •  

    GetItemEstimate can be used on an unsynchronized folder but as the method name declares it is an ‘estimate’.  In Exchange Server 2007  there have been improvements that make the estimate to be more accurate but it is still an estimate.  Feedback from development is there is currently no mechanism that allows you to retrieve the actual number.

     

    One thing you should be aware of is that support for Exchange Server Protocols fall under the Interoperability Principles.  Interoperability Principles covers client protocols to interoperate with Exchange Server 2007.   The version of Exchange ActiveSync (EAS) that ships with Exchange Server 2007 is 12.1.  This is what is supported by this interoperability forum.

     

    Support for older versions of EAS protocol, such as 2.5, is handled as a paid service engagement with Microsoft Partner Advantage Services (MSPA).   If you are interested please contact your Microsoft licensing contact and they will redirect you the appropriate people to get you started.

     

    Dominic Salemno
    SENIOR SUPPORT ESCALATION ENGINEER

    Thursday, January 29, 2009 8:09 PM