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.
Image may be NSFW.
Clik here to view.
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 = @( "Image may be NSFW.
Clik here to view." )
$OSs | % { $OS="$_"
$ConnectString = [adsi]"Image may be NSFW.
Clik here to view."
$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()
}
}
}
Image may be NSFW.
Clik here to view.