Recently I stumbled on a Tab Loading Issue inside the Asset view.
The Mainproblem appeared to be the Tag Tab which was not loading as expected.
First things first, I checked my log (AppServer and SymConsole).
After a few Seconds i found the related Log entries.
Appserver Log was showing the following:
24.04.2013 06:50 24.04.2013 08:50 <appservername>Error Tagging SymConsole 2476 1 GetTagsFromObjectGuid 0 1 Error in GetTagsFromObjectGuid | ||||||
24.04.2013 06:50 24.04.2013 08:50 <appservername>Error Tagging SymConsole 2476 1 Search 0 1 "System.ArgumentNullException: Value cannot be null. | ||||||
Parameter name: searchFilter | ||||||
at Symantec.CCS.Business.Core.BusinessBase`1.Search(String containerUniqueId | ||||||
at Symantec.CSM.Business.Tagging.TagBusiness.GetTagsFromObjectGuid(IEnumerable`1 objectGuids)" | ||||||
24.04.2013 06:50 24.04.2013 08:50 <appservername>Error Tag management SymConsole 2476 1 Deserialize 0 1 "Value cannot be null. | ||||||
Parameter name: searchFilter" | ||||||
24.04.2013 06:50 24.04.2013 08:50 <appservername>Error Symantec.Core SymConsole 2476 13 MoveNext 0 0 "RetryHelper.Call(Search) - failed [An operations error occurred.]
|
with another 9 Same "moveNext 0 0 "RetryHelper.Call(Search) entries.
Console Log displayed kind of the same "stuff":
24.04.2013 06:55 | 24.04.2013 08:55 | <appservername> | Error | Tagging | SymConsole | 2476 | 13 | GetAllTagsOfBusinessObject | 0 | 0 | Error in GetAllTagsOfBusinessObject for: CN=011eaff2-307a-4f31-85a9-502286219090,CN=Solaris 10,CN=Solaris,CN=ESM Structure,CN=Asset System,CN=Asset Management,CN=BusinessObjects,O=Symantec | ||
24.04.2013 06:55 | 24.04.2013 08:55 | <appservername> | Error | Tagging | SymConsole | 2476 | 13 | Call | 0 | 0 | System.Runtime.InteropServices.COMException (0x80072020): An operations error occurred.
at Symantec.RetryHelper.Call[TReturnType](String retryName, RetryOperation`1 retryOperation, FailureOperation failureOperation, String context) at Symantec.CSM.Directory.Directory.Search(String strObjectDN, String strAttributeScopeQuery, String strFilter, List`1 listAttributesToRetrieve, Int32 nItemsToReturn) at Symantec.CCS.Business.Core.BusinessBase`1.Search(String strObjectDN, String strAttributeScopeQuery, String strFilter, List`1 listAttributesToRetrieve, Int32 nItemsToReturn) at Symantec.CSM.Business.Tagging.TagBusiness.GetAllTagsOfBusinessObject(String businessObjectDn, List`1 attributesToRetrieve, DataSet& tags) | ||
24.04.2013 06:55 | 24.04.2013 08:55 | <appservername> | Error | Assets | SymConsole | 2476 | 13 | Load | 0 | 0 | Exception has been thrown by the target of an invocation. |
24.04.2013 08:07 | 24.04.2013 10:07 | <appservername> | Error | Symantec.Core | SymConsole | 2476 | 15 | MoveNext | 0 | 0 | RetryHelper.Call(Search) - failed [An operations error occurred.], context [Directory], stop retry flag [False], failed retry counter [0 of 10] : System.Runtime.InteropServices.COMException (0x80072020): An operations error occurred.
at System.DirectoryServices.SearchResultCollection.ResultsEnumerator.MoveNext() at Symantec.CSM.Directory.LdapOperations.Search(String strObjectDN, Boolean bSearchSubtree, String strAttributeScopeQuery, String strFilter, List`1 listAttributesToRetrieve, Int32 nItemsToReturn) at Symantec.CSM.Directory.Directory.<>c__DisplayClass78.<Search>b__76() at Symantec.RetryHelper.Call[TReturnType](String retryName, RetryOperation`1 retryOperation, FailureOperation failureOperation, String context) |
Apparent you can see the "root of all Evil"
Error in GetAllTagsOfBusinessObject for: CN=011eaff2-307a-4f31-85a9-502286219090,CN=Solaris 10,CN=Solaris,CN=ESM Structure,CN=Asset System,CN=Asset Management,CN=BusinessObjects,O=Symantec
GetAllTagsOfBusinessObject. Okay, Let me check.
#IMPORTANT NOTE
#(Symantec does not recommend browsing inside ADAM, please make sure you know what you're doing. I don't take any responsibility)
#END NOTE
After a few browses inside ADAM I found the attribute "symc-csm-BusinessObject-Tag".
It was showing somithing like the following:
CN=ddcc0269-20c8-4108-ba49-afbf443079e8\0ADEL:24b1fd12-b70c-47e5-9231-cd550f86e926,CN=Deleted Objects,O=Symantec
Since i now that there never existed a "CN=Deleted Objects" container I obviously found the dirty vermin. A CN called CN=ddcc0269-20c8-4108-ba49-afbf443079e8\0ADEL:24b1fd12-b70c-47e5-9231-cd550f86e926 also never existed. At the moment i don't know what caused the Issue. Maybe Symantec Support will puzzle out (Case#: 04196190).
Anyway. My Problem was solved Setting the Value to "<not set>". As you can imagine, i Scripted all the Work for my nearly 2000 Unix Assets.
Luckily i didn't set very much tags on the Assets until now. Or even if i had set more of them - it was done by recon rules - no worries at my site.
A few Lines of code made my Day. Contact me for further Help. I'm not posting the "Full" Script due to respect of Symantec Support.
$OSs = @( "" )
$OSs | % { $OS="$_"
$ConnectString = [adsi]""
$strFilter = "(ObjectClass=symc-csm-AssetSystem-Asset-ESM-Agent)"
$objSearcher = New-Object adsisearcher([adsi]$ConnectString,"($strFilter)")
$objSearcher.SearchScope = "1"
$objSearcher.SearchRoot = $ConnectString
$objSearcher.PropertiesToLoad.clear()
$objSearcher.PropertiesToLoad.AddRange(('CN', 'symc-csm-BusinessObject-Tag'))
$SearchResult = $objSearcher.FindAll()
$SearchResult | % {
$Asset = [ADSI]$_.GetDirectoryEntry()
$Asset."symc-csm-BusinessObject-Tag"
$tmpString = $Asset."symc-csm-BusinessObject-Tag".ToString()
if ( $tmpString.Contains("CN=Deleted Objects") ) { $Asset."symc-csm-BusinessObject-Tag".Value = $null
$Asset.CommitChanges()
}
}
}