cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
4379
Views
0
Helpful
3
Replies

Cisco UDS - Can we query for all potential users (max being 160K)

5mgagnon
Level 1
Level 1

hi

What is the maximum number of record UDS can return when enumerating all users using

By default its 64....the Maximum number of users in Cisco Users database is 160K

Cisco UDS Query : https://{host}:8443/cucm-uds/users?max=160000

What will be the CPU/Memory impact on the servers responding to such request if the CUCM database, contain, lets say... 160K Users ?

The goal is to extract all users, and synchronized some information retrieve to an external Database (Inventory Management Tools)

The other approach is to use standard AXL/SOAP request

So what would be the best approach ?

Thanks

1 Accepted Solution

Accepted Solutions

chribble
Cisco Employee
Cisco Employee

The maximum number of users that can be returned in a single request is controlled by the Enterprise Parameter "User Search Limit" under "User Data Service Parameters". The default value is 64, but can be increased up to 500. The reason for this limit is to protect CUCM resources.

The client may then specify (via the max query parameter) any number up to the value of the "User Search Limit" Enterprise Parameter. If the client sends a value larger than that limit, UDS will fall back to the limit specified in the Enterprise Parameter.

You can still extract all of the users in the database by making multiple requests to UDS (i.e. in a loop) with the "start" query parameter.

For example, your first request would be:

https://my-cucm/cucm-uds/users?max=500&start=0

Then, based on the value of the "totalCount" attribute on the root element in the returned XML, you could determine how many "pages" of results you need to fetch:

Then you would keep making requests to UDS like so:

https://my-cucm/cucm-uds/users?max=500&start=500

... incrementing start by 500 each time until you had exhausted all results.

Whether you really want to use UDS or AXL depends on your exact criteria. UDS is certainly easier to interact with than AXL and is probably faster in most cases, but there is a penalty for returning the results sorted like UDS does.

View solution in original post

3 Replies 3

chribble
Cisco Employee
Cisco Employee

The maximum number of users that can be returned in a single request is controlled by the Enterprise Parameter "User Search Limit" under "User Data Service Parameters". The default value is 64, but can be increased up to 500. The reason for this limit is to protect CUCM resources.

The client may then specify (via the max query parameter) any number up to the value of the "User Search Limit" Enterprise Parameter. If the client sends a value larger than that limit, UDS will fall back to the limit specified in the Enterprise Parameter.

You can still extract all of the users in the database by making multiple requests to UDS (i.e. in a loop) with the "start" query parameter.

For example, your first request would be:

https://my-cucm/cucm-uds/users?max=500&start=0

Then, based on the value of the "totalCount" attribute on the root element in the returned XML, you could determine how many "pages" of results you need to fetch:

Then you would keep making requests to UDS like so:

https://my-cucm/cucm-uds/users?max=500&start=500

... incrementing start by 500 each time until you had exhausted all results.

Whether you really want to use UDS or AXL depends on your exact criteria. UDS is certainly easier to interact with than AXL and is probably faster in most cases, but there is a penalty for returning the results sorted like UDS does.

Thanks. How much "hit" on the CPU should we expect, vs using SQL request ?

This say, maybe I just havent found it, but I cannot find the e164mask value return when querying an extension on a user associated devices.

The goal is to get this information from "all" user on the system, and publish it in an external DB:

userid = jdoe

Primary Number = %number%

External Number = %e164mask%  -> Did not find this in UDS API Sample extract

This e164mask is mathching External Phone Number Mask values per device for an extension

I assume by "SQL request" you mean thin AXL? With a properly optimized query, thin AXL *may* require less CPU. It's hard to say. The queries in UDS are pretty optimized to their specific purpose, so any improvement via a thin AXL query would generally be had by either returning less data or constructing a simpler query.

I would suggest benchmarking your thin AXL approach against UDS on a test system to see which performs better (and monitor CPU usage while running your test). Please share the results!

As far as the E164 mask ... I don't think we return that in any of the UDS APIs, although I can definitely see why you would want it. If you need that, then thin AXL may be more appropriate for your purpose.