USM introduced a new internal cleanup task to allow more control when USM sessions and SyncStates are removed from its memory cache. The following USM properties allow configuration of that cleanup task:

* com.openexchange.usm.session_cache_check_interval (default: 60000) specifies in milliseconds how often the internal cleanup task will be executed

* com.openexchange.usm.session_cache_check_interval_ log_info (default: 300000) specifies in milliseconds how often statistics information about the cache cleanup will be logged (at level INFO)

* com.openexchange.usm.cache.session.timeout (default: 43200) specifies in seconds how long an USM session must be inactive to get removed from the memory cache

* com.openexchange.usm.cache.syncstate.timeout (default: 3600) specifies in seconds how long a SyncState (synchronization information for 1 folder) will be kept in the memory cache

--------------------------------

USM was modified to reduce database usage. If a synchronization doesn't result in any changes, it will not create a new SyncState, but reuse the existing one. This implies that the reference (synckey) to the SyncState will not change. If any custom client implementation should require new synckeys on every synchronization, the old behavior can be enforced by setting the following USM property to true:

* com.openexchange.usm.force_new_sync_key_on_empty_s ync (default: false) force creation of new SyncState/synckey on an empty synchronization

--------------------------------

To prevent server problems when synchronizing large amounts of data, the following USM properties were introduced to limit the synchronization:

* com.openexchange.usm.max_objects_per_folder (default: 65535) specifies the maximum number of objects (per folder) that will be synchronized with clients

* com.openexchange.usm.max_attachment_count_per_obje ct (default: 100) specifies the maximum number of attachments per object that will be synchronized with clients

* com.openexchange.usm.max_attachment_size_per_objec t (default: 52428800) specifies the maximum size (in bytes) of all attachments per object that will be synchronized with clients

--------------------------------

The following USM-JSON properties have changed their default values to disable the access check mechanism by default:

* com.openexchange.usm.json.access_check.test_interv al (from 120000 to 0)

* com.openexchange.usm.json.access_check.max_accesse s (from 40 to 0)

* com.openexchange.usm.json.access_check.refusal_int erval (from 900000 to 0)

--------------------------------

The following USM-JSON properties has changed its default value:

* com.openexchange.usm.json.sync.inbox_polling_inter val (from 60000 to 600000)

--------------------------------

The following USM-JSON propery had a hardcoded default value (i.e. value used if not specified in the config file) that differed from the default value in the default config file. The hardcoded value has been adjusted to reflect the default value in the default config file:

* com.openexchange.usm.json.ping.max_interval (from 2147483647 to 360000)

--------------------------------

The following USM-EAS propery had a hardcoded default value (i.e. value used if not specified in the config file) that differed from the default value in the default config file. The hardcoded value has been adjusted to reflect the default value in the default config file:

* com.openexchange.usm.eas.ping.max_folders (from 2147483647 to 10000)

--------------------------------

Due to internal changes the following USM-EAS property is no longer needed and has been removed:

* com.openexchange.usm.eas.uid_prefix

--------------------------------

The following USM-EAS property has changed its default value (so that the EAS access prevention is triggered after more unnecessary Sync-requests):

* com.openexchange.usm.eas.access_check.max_accesses (from 40 to 80)

--------------------------------

The following USM-EAS property was introduced for configuration of extended EAS 12.x capabilities:

* com.openexchange.usm.eas.sync_max_collections (default: 3) Specifies a limit for the maximum number of collections that may be synchronized in a single Sync-request. Some devices expect to be able to synchronize at least 2 collections in 1 Sync-request