[Index]

Model: data/DeviceChanges

Cisco UCM Change Notification (CNF) Sync

Full HTML Help

Overview

Partners can use Cisco UCM's Change Notification (CNF) functionality to process update sync operations faster. This feature is disabled by default. You can enable it if required.

This topic provides guidelines for setting up a sync schedule, and lists associated performance implications.

Note

Further details for using CNF is provided elsewhere in the Automate documentation. The changes described here are not transactions so details don't display in the transaction log, but in special logs created for CNF.

These guidelines are derived from concepts related to total processing capacity. The total number of updates processed in a time period is the sum of all updates across the customers selected for update in that time period. In this case, the time period is one hour. In this example, it is assumed that each customer has 1000 UCM-related changes in that hour.

Recommendations provided in the following table indicates that 5 customers can run in parallel (concurrently), and therefore a total of 5,000 changes processed in total.

Partners exceeding the recommendation of 5 concurrent customers may notice a performance degradation, and the full set of required changes may not complete within that hour. Alternatively, if the number of changes for any customer is significantly higher than 1,000, or if the total number of changes is significantly greater than 5,000, the supported concurrency number may be less than 5.

If some of the planned changes do not complete within the hour noted in the table, those changes are completed the next time that particular customer is scheduled for a sync.

If the number of changes for any customer is so large that the changes continually exceed those that can be processed in one hour, it will eventually result in a full sync. For such customers, it is recommended to schedule within an hour where less than 5 customers execute concurrently.

Configuration Recommendation
Maximum number of concurrent CNF sync 5
Maximum number of changes processed per CNF sync 1,000
CNF sync schedule frequency Once per hour per customer - This is subject to the staggering of CNF sync across customers.
Staggering of CNF syncs across customers Factor of maximum changes processed and maximum number of concurrent CNF syncs.
CNF collector frequency Initial recommendation is 15 minutes.
When is full sync required? Weekends only or when there are CNF alerts prompting for full sync.

Note

It is recommended that you disable CNF if you experience significant performance degradation. Contact your support representative if you have any performance concerns.

Staggering CNF syncs across customers

This section provides an example and considerations for change notification (CNF) syncs across customers.

If a partner has twenty customers who want to use CNF sync, only schedule a maximum of five CNF syncs to run concurrently. This means that syncs would run as follows:

The preceding example means that the CNF sync schedule per customer must run at 4 hour intervals. Therefore, there are 6 CNF syncs per customer within a 24 hour window. With each CNF sync processing up to 1k changes, there are:

CNF components

Automate's interaction with the Cisco Unified Communication Manager (Cisco UCM) Change Notification Feature (CNF) sync has two primary components:

Component Description
Data Collector

Collects changes from Cisco UCM and updates the VOSS cache on the predefined frequency (defaults to every 300 seconds).

This collector must be enabled to collect the changes, otherwise the sync won't process any changes.

Change Notification Sync

A change notification (CNF) sync type that processes the changes changes the data collector places in the VOSS cache.

A scheduled sync must be set up and enabled so that the changes are processed within a reasonable period.

The CNF sync can also be run adhoc, if required, around the the schedule.

The Automate data collector retrieves change records from Cisco UCM based according to the predefined interval. By default, this is every 300 seconds (3 minutes).

When running a CNF sync, Automate processes the change records that are collected as follows:

Operation Description
Add Performs a GET API call to retrieve the full record, and adds it to Automate.
Update Performs a GET API call to retrieve the full record, and updates updates the record in Automate.
Del Removes the record from Automate.

Update syncs perform GET API calls only for changed records, which reduces the time it takes to run the sync. This is particularly beneficial for large UC installations.

With a data collector polling period of 300 seconds and a CNF sync scheduled for every 24 hours, the process is as follows:

For example, on a system with 10 000 users, if 100 of these users are changed, then only 100 GET AXL request are required in a CNF sync. By contrast, a non-CNF sync would require 10 000 GET AXL requests to update these 100 users.

The Automate data collection can store up to 200,000 changes from a single Cisco UCM cluster.

Cisco UCM and CNF

The Cisco UCM CNF capability supports all the objects that are available via AXL. Typically, this means that everything Automate can manage in Cisco UCM is available via change notification.

Data that Automate pulls from Cisco UCM that is not via AXL, includes:

In Cisco UCM, the change queue cache is stored in memory and is limited to 100,000 changes. The cache can fill quickly depending on the types of changes performed. For example, if an XSI (IP Phone) Service has been configured for 10,000 phones and the service is deleted, the cache will include one entry representing the deletion of the service plus 10,000 phone updates indicating the service was removed from each device. The polling period from the Cisco Unified CM is configurable and the timing should be considered based on how frequent configuration changes are being made in Cisco Unified CM. The default in Automate when polling is enabled is 300 seconds but it can be modified to be longer (up to 7200 seconds) as desired.

Cisco UCM setup to use CNF

There are two settings in the Cisco Unified Communications Manager (Cisco UCM) to check and update to ensure change notification (CNF) is enabled and set up for the right queue size (accessed via service parameters: - System > Service Parameters > Cisco Database Layer Monitor then click the Advanced button):

Service Parameter Name Setting
AXL Change Notification This should be set to "On"
AXL Change Notification Queue Size This has a default of 20000. For a typical system, it is suggested this is changed to the maximum of 100000 to reduce the chance of changes being missed under heavy provisioning tasks.

Enable / disable CNF syncs for a Cisco UCM cluster

This section describes the high level steps for enabling change notification (CNF) syncs for a Cisco Unified Communications Manager (Cisco UCM) cluster in Automate:

Note

Perform these steps in reverse order to disable change notification for the cluster.

  1. Enable and configure the service in Cisco UCM - see Cisco Unified CM Setup to use CNF
  2. Enable change notification on the Cisco UCM cluster in Automate - see Detailed Automate CNF functionality
  3. Review the change notification settings for the cluster - see Detailed Automate CNF functionality
  4. Review or create the required data sync instances for change notification, for the cluster.

See Introduction to data sync in the Core Feature Guide

Note

The actual number of syncs and their setup will depend on the needs for your system and the design.

See the Best Practices Guide for guidance on sync logic and recommended setups. If further recommendations or guidance is needed, contact your VOSS account team or VOSS support.

  1. Review or create required schedules for the data sync(s) created in the previous step, and activate the schedule(s) - see Enable a Scheduled Data Sync

    Note

    Follow the guidance for scheduling around syncs to ensure the load on the system is optimized.

    At least one sync schedule should be activated for the CNF sync setup to be complete.

Automate change notification

This section provides more details on the functionality of the Change Notification Feature (CNF) components in Automate.

Change notification collector

The data/DeviceChanges model has an instance per UCM cluster and will provide the data collector status and pending changes in the cache for that cluster. An instance of the model will appear for all UCM clusters whether change notification is enabled or not. It gives you access to:

The data/DeviceChanges model should be included in menu layouts for roles that need access to this level of detail for the CNF syncs.

Change notification sync type

When a Change Notification sync type is used in a data sync, there are a number of differences in the sync behavior in comparison with a normal pull sync:

All other visible settings are the same as with a normal pull sync, for example, device filters, workflows, and so on.

When a sync runs (either a normal pull sync or a change notification sync), it will clear out the change notification collection of any model types and changes processed for that cluster.

The model type lists and disabled operations define which models and types of actions are processed in either a pull or a change notification sync:

Pull Sync and Change Notification Sync details:

This sync behavior means that you may wish to set up multiple syncs for a cluster to handle different types of sync and sync schedules to meet your needs. Ensure that you generally have all the model types covered in your scheduled syncs if CNF is enabled, otherwise some changes may never be cleared from the change collection, thereby taking up space.

For additional considerations and information around sync setup best practices, see the Best Practices Guide.

Automate setup to enable change notification

Enabling the Cisco UCM Change Notification Feature (CNF) capability is completed on a per Cisco UCM cluster basis. This can be done on the Cisco UCM Server configuration page for a publisher via the Publisher tab and selecting the Enable Change Notification Sync check box. When selected and saved, the system will:

When CNF is disabled on the Publisher configuration page (or if the cluster is removed from the system), the following will occur:

Note

If the collector is only disabled via the data/DeviceChanges model, then the schedules and sync will remain. This is the best approach if you need to temporarily disable the CNF sync (for example, for a maintenance window).

Troubleshooting Change Notification (CNF)

A number of scenarios may result in error conditions in the change notification (CNF) process. In this case, Automate is able to display alerts automatically, which means it won't be necessary to configure change notification (CNF) alerts manually.

Administrators can view the alerts at the hierarchy level they log in at and all the levels below that hierarchy. For example, if an alert is raised at the customer level (sys.hcs.provider.reseller.c1), then the provider, reseller, and customer administrators can see that alert, but not the site administrators. All the administrators have read and delete permissions to the alerts.

When a CNF alert is raised, the Notifications indicator on the Admin Portal GUI displays the alert. Clicking the notifications launches a dialog and a message that alerts have been raised. Click on the message to be able to go to the list of alert messages, which are also accessible via the Alerts page.

Properties of CNF alerts

CNF alerts have these properties:

Note

Administrators can also filter alerts by any of the alert fields.

Error scenarios for CNF alerts

Automate displays change notification alerts for the following error scenarios:

Important

Errors codes not discussed in this section may be relevant for alerts that are more internal, and you may need to raise a support ticket for further investigation.

The administrator reads, inspects, acts on (for example, run a full sync on the device), and then manages alerts of the Change Notification collection service. The administrator can delete the alert from the list only when the issue that raised the alert has been resolved.

Note

If the Administrators forget to remove the change notification feature alert after resolving it, the alert will still be shown when they log in to Automate. We strongly recommend removing the alert after resolving it.

Change Cache Full on Cisco UCM

If the Cisco UCM maximum number of stored change records is exceeded, the Cisco UCM drops the oldest changes that have not been collected. This can happen if the polling time in Automate is set up to be too long or the Cisco UCM is experiencing a very high level of changes. In this case, the system automatically attempts to recover once it receives the polling error. This activity is logged as an alert in the system and provides the outcome, either of the following:

If recovery is successful, you may want to review and consider a full sync as some changes would have been lost (the oldest changes in the Cisco UCM cache).

If recovery was not successful, a full sync is required to update and to get CNF functioning again. The full sync is needed as changes would have been missed from the Cisco UCM, and a clean sync is required in order to start processing changes again. In this situation, application info log messages are logged as well - "Repaired change notification tracking data for device {}" or "Unable to repair change notification tracking data for device {}"

Change Collection Full for a CUCM Cluster

If the Automate change collection for a given Cisco UCM cluster exceeds the maximum changes - 200,000 - then an alert with code 40006 is raised. This alert means that no further changes are collected from the Cisco UCM until some of the pending changes are processed. This can be carried out by an administrator executing a sync for that Cisco UCM cluster to clear some of the changes. If the next scheduled sync is not too far ahead in time, then waiting for the next scheduled sync to run may be acceptable.

Used (per device) for configuring the change notification collector process & for monitoring unprocessed change notifications

Model Details: data/DeviceChanges

Title Description Details
Device ID * The resource ID of the associated device
  • Field Name: device_id
  • Type: String
Device Name * The name of the associated device
  • Field Name: device_name
  • Type: String
Device Type * The type of the associated device
  • Field Name: device_type
  • Type: String
Last Collection Time The last time the associated device was checked for changes
  • Field Name: last_collection_time
  • Type: String
CUCM Cluster Notes CUCM Cluster Notes Field
  • Field Name: notes
  • Type: String
Pending Change Notifications Pending changes for the associated device
  • Field Name: changes.[n]
  • Type: Array
Model Type * The model type of the pending changes in this section
  • Field Name: changes.[n].model_type
  • Type: String
Add Count The number of pending add changes
  • Field Name: changes.[n].add_count
  • Type: Integer
Update Count The number of pending update changes
  • Field Name: changes.[n].update_count
  • Type: Integer
Delete Count The number of pending delete changes
  • Field Name: changes.[n].delete_count
  • Type: Integer
Settings Change collector settings for this device
  • Field Name: settings
  • Type: Object
Polling Interval (seconds) How often the change collector service will check this device for changes (seconds) Default: 300
  • Field Name: settings.polling_interval
  • Type: Integer
  • Minimum: 300
  • Maximum: 7200
  • Default: 300
Enable Change Collection Tick to enable change collection for this device Default: True
  • Field Name: settings.cnf_enabled
  • Type: Boolean
  • Default: True
Model Type List Reference to a list of model types to be included or excluded for change collection.
  • Field Name: settings.model_type_list
  • Type: String
  • Target: data/ModelTypeList
  • Target attr: name
  • Format: uri
Ignored Operations Indicates which operations should not be collected.
  • Field Name: ignored_operations
  • Type: Object
Add Do not collect "add" changes.
  • Field Name: settings.ignored_operations.add
  • Type: Boolean
Update Do not collect "update" changes.
  • Field Name: settings.ignored_operations.update
  • Type: Boolean
Remove Do not collect "remove" changes.
  • Field Name: settings.ignored_operations.remove
  • Type: Boolean
Displayed Model Types These model types will be displayed un-grouped in the pending changes section
  • Field Name: displayed_model_types.[n]
  • Type: Array
Model Type The model type that will have counts displayed in the pending changes section
  • Field Name: settings.displayed_model_types.[n].model_type
  • Type: String