cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
675
Views
8
Helpful
7
Replies

UC 7 - unable to delete distribution list

techguy73
Level 1
Level 1

I've got this distribution list migrated over, which do not have any members, but am unable to delete it, and getting error this object is currently in use.

I enabled dependency records but unable to see anywhere I can access this functionality. How do I go about this one? please help.

7 Replies 7

testeven
Cisco Employee
Cisco Employee

Hi,

Open CLI for CUC and run the following:

1. admin:show cuc dbtable list unitydirdb   ----> This will list all the tables from the unitydb.
You will see one called tbl_distributionlist

2. You can run the following to see the DL on the table:

admin:run cuc dbquery unitydirdb select * from tbl_distributionlist  ---> This will display the current DL on the DB, make sure you see the one you want to delete andcopy the object id from the DL you want to delete, something like:

da51e0f3-20c5-402f-9f3d-da303f0fc8ef

3. You can run this command to delete one DL from the table:

run cuc dbquery unitydirdb execute procedure csp_DistributionListDelete( pObjectId = 'OBJECT ID FROM ABOVE' )

so the query should look like:

admin:run cuc dbquery unitydirdb execute procedure csp_DistributionListDelete( pObjectId = 'da51e0f3-20c5-402f-9f3d-da303f0fc8ef' )

Hope this helps, I tried it on my lab and it works!

Regards,

Tere Stevens
-----
Cisco Systems
Unified Communications PDI Team
www.cisco.com/go/pdihelpdesk

Regards, Tere. If you find this post helpful, please rate! :)

I suspect if there is a dependency on it then deleting the DL from the CLI is not going to work either - the SA is essentially doing the same operation and the stored proc is likely returning that error.  You might get lucky and it's the SA doing a seperate/unnecessary check but I'm guessing that's not going to be the case and you'll see a similiar error in the CLI as you do in the SA.

Another approach is to see if you can find the dependency reference on the DL - it could be a bug (i.e. a bogus reference) or it could be a handler referencing it as a message recipient and/or a name lookup handler referencing it as a scope etc...

The easiest way to find references to an object is to use the CUDLI data viewer tool:

http://www.ciscounitytools.com/Applications/CxN/CUDLI/CUDLI.html

Make sure to have it show all data instead of limiting to the top 100 rows as it does by default (a red flashing text will tell you this when you fire it up).  Find the ObjectID of the DL you're trying to delete and then use the "Find value in db tables" option under the File Menu.  Paste in the object ID and let it rip - it'll look in every column of every row of every table in the database looking for references to that objectId - if there's any in there, it'll take you to them.  If there are valid references to the list keeping it from being deleted, you'll find them.

Thanks for heping out. testeven your method was working ok, however the query failed to execute.

lindborg, you were very right about it, the gui is doing the same thing behind the scenes, but the cli was well worth a try.

Now thanks for the tool, I attempted to look for the object id, and it stopped on few tables named as:

vw_alias  and below highlighting the row

vw_distributionlist

vw_distributionlist_conversationsearch

vw_distributionlist_list

vw_distributionlist_searchspacemember

vw_distributionlistsearch

Now is that good info? if yes, how do I go about deleting the references? your help is greatly appreciated.

If those were the only views that returned a reference to the list then, no, it doesn't give you anything to go on - those are all different slices of the list of public distribution lists used by various coponents that need more or less DL inforation (i.e. presenting a list of DLs requires only a couple properties so a "slim" view of that is provided to speed things up when doing remote queries).

Unfortunately there's no concept like a "replace DL with this one if there's a reference to it" in the stored proc to delete public DLs like there is for deleting users for instance - someone from the data tea will likely have to run through why that stored proc is throwing up a bogus error about a reference to the DL hanging around causing the delete to fail.  Doesn't look like there's a legitimate reference to it as a message recipient for a handler or the like.

hmm that's bad news. On another note, would you use it as a legitimate DL by renaming it's alias and display name, now that it won't go away? or due to the buggy nature of it, it may corrupt something in db and hence refrain from doing so? what would you recommend?

I doubt the list itself is corrupt - there's likely some reference in a temporary table somewhere and/or a bug in the delete logic being overly aggressive about checking to see if there's a foreign key constraint violation or the like.

It's not doing any harm - I'd just leave it alone - if it's assigned to an extension, blank it out and leave it be - reusing it seems unnecessary - there's no license constraint it's holding on you or any practical limit for the number of DLs in the database that are allowed - I wouldn't tempt fate - just park it and leave it.

Thanks for your valuble input, it's very much appreciated.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: