Zimbra NG Modules/Zimbra NG Mobile/SyncStates

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Zimbra NG Mobile - SyncStates

Zimbra NG Mobile - SyncStates

Zimbra NG Mobile and the SyncState

The SyncState (short for Synchronization Status) is a set of informations kept on the server about the synchronization with a mobile device. Each time a devices establishes a connection with the Zimbra NG Mobile module, the following steps take place:

  • 1. The device requests a folderSync operation in order to synchronize the local Folders with the ones on the server.
    One SyncKey per local folder is sent (or a single SyncKey set to '0' if this is the first connection between the device and the server)   
  • 2. The server replies with a list of available folders.
    One SyncKey per folder is sent by the server.
  • 3. Then, the device requests an itemSync operation in order to synchronize all due items.
    The server stores the items synchronized in the SyncState.
  • 4. After completing the itemSync operation, the device sends a 'ping' command to keep the connection alive.
    Step 4 is repeated as long as no changes happen to the synchronized account.

Every time a new item is stored on the mailbox or an old item is modified the server notifies the availability to the device, which closes the active connection (the one kept alive by the ping command) and repeats steps 3. and 4. .

The SyncState is the combination of the SyncKeys saved on step 2 and the itemIds saved on step 3. It's saved by the server per the userId/deviceId unique pair.

Sync Request

The Sync Request is the actual synchronization process, started by either Zimbra NG Mobile or by the client. During a sync request, any change in the mailbox that happened since the last request is synchronized to the device and viceversa.

A sync request is issued when:

  • The SyncState changes
  • A sync is forced client-side
  • The current "ping" expires and a new one is sent by the device (the keepalive duration is defined by the client)

Managing the SyncStates

Via the Zimbra NG Modules Administration Zimlet

Zimbra NG Mobile provides two options to manage the SyncStates of synchronized mobile devices:

  • Reset Device: Resets the device's SyncState for a single account, forcing a full re-synchronization the next time the device connects to the server.
  • Remove Device: Removes all the device's SyncState and history from the server. Useful when a mobile device is not used anymore or is assigned to a different employee in the same company.

Both options can be found in the Zimbra NG Modules Administration Zimlet (On the left menu of the Zimbra Administration Console: Zimbra NG Modules -> Zimbra NG Mobile).

Via the Zimbra NG Modules CLI

The doRemoveDevice command

   zxsuite mobile doRemoveDevice {account} {device_id} 


NAME            TYPE            
account(M)      Account Name    
device_id(M)    String          

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite mobile doRemoveDevice john@example.com Appl79032X2WA4S
Removes John's Appl79032X2WA4S device SyncState

The doResetAccount command

   zxsuite mobile doResetAccount {account} 


NAME          TYPE            
account(M)    Account Name    

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite mobile doResetAccount john@example.com
Resets all the device states for John's account

The doResetDevice command

   zxsuite mobile doResetDevice {account} [attr1 value1 [attr2 value2...]]


NAME            TYPE            DEFAULT
account(M)      Account Name    
device_id(O)    String          all

(M) == mandatory parameter, (O) == optional parameter

Usage example:

zxsuite mobile doResetDevice john@example.com Appl79032X2WA4S
Resets John's Appl79032X2WA4S device SyncState

Zimbra NG Modules


Latest Version: 8.8

Zimbra NG Modules Resources

Here you can find useful resources for your Zimbra NG Modules

Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search