This section covers troubleshooting for the General Configuration Items and functions surrounding it.
There may be a time when you need to move your Software Library. There are two ways to do this. The first is the built-in, easy way.
- In the Symantec Management Console, browse under Settings > All Settings > Software > Software Catalog and Software Library Settings > Software Library Configuration.
- In the field for the share, type in the new location you wish to move the Software Library to. Note that this share should have the same rights assignment as the existing one.
- Click OK. You will receive a prompt on how you’d like to proceed.
![]()
- Choose to Migrate existing packages. It is recommended not to select the option “Automatically delete old package files after migration” so that you have a backup should anything go amiss. You can delete the packages after you’ve manually inspected the move.
- Click OK to begin the process:
![]()
- When finished it will return to the main section with the message: Migration process completed successfully.
The second option is to manually move the packages to the new location (keeping the same folder structure as the previous share). Instead of choosing the top option, choose to “Change existing packages”. All packages from the previous location need to exist in the new location before this is done to ensure the process completes successfully.
This is generally caused by the upgrading having run before, whether it was successful or not. You can solve this with one of the following ways:
- Add a repeating schedule (daily) to the upgrade policy. Clients who successfully upgrade will not try to rerun the policy as they will drop out of the filter and target, but this ensures if anyone ends up needing the upgrade again it will run.
- Clone the plug-in upgrade policy and target the systems that are not upgrading. If there is a target problem this will resolve it.
An issue after an install or upgrade appears when agents are not installing or upgrading their Inventory Plugins. This happens due to a condition where a configuration item gets dropped during the install / upgrade process. This might be the entire package configuration, or an association to it. In the logs the following error or one similar will appear when clients request their configuration:
"2/25/2011 11:01:16 AM","Unable to generate policy XML for item: 8592325b-1b4a-4cf4-8c46-c17a0ba564a2 **CEDUrlStart** :http://entced.symantec.com/entt?product=SMP&version=7.1.6797.0&language=en&module=qlub65YMYgWeGGssRthgvN1WHJjANnIAgZtUStOHQto=&error=862971658&build=**CEDUrlEnd** ( Exception Details: Altiris.NS.Exceptions.AeXException: Unable to build the client configuration XML for advertisement with guid {8592325b-1b4a-4cf4-8c46-c17a0ba564a2}. Reason: Did not get a row for Software Delivery Advertisement ""Inventory Plug-in - Install"", Guid = {8592325b-1b4a-4cf4-8c46-c17a0ba564a2} from the SWD tables. ---> Altiris.NS.Exceptions.AeXException: Did not get a row for Software Delivery Advertisement ""Inventory Plug-in - Install"", Guid = {8592325b-1b4a-4cf4-8c46-c17a0ba564a2} from the SWD tables. at Altiris.NS.StandardItems.SoftwareDelivery.AdvertisementItem.OnBuildClientConfigXml2(Guid workstationGuid, XmlNode requestDocumentElement, XmlTextWriter xmlBuilder) --- End of inner exception stack trace --- at Altiris.NS.StandardItems.SoftwareDelivery.AdvertisementItem.OnBuildClientConfigXml2(Guid workstationGuid, XmlNode requestDocumentElement, XmlTextWriter xmlBuilder) at Altiris.NS.StandardItems.Policies.ClientConfigPolicy.GetConfigXml(Guid resourceGuid, String requestXml) at Altiris.NS.AgentManagement.PolicyRequest.<>c__DisplayClass4.<LoadItemPolicy>b__0(IDatabaseContext ctx) at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetryHelper(Int32 retries, Boolean inTransaction, Getter`1 getContext, Action`1 action, Action`1 retry) at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetry(Int32 retries, Boolean startNewTransaction, IsolationLevel isolationLevel, Boolean independentContext, Action`1 action, Action`1 retry) at Altiris.Database.DatabaseContext`1.PerformWithDeadlockRetry(Int32 retries, Boolean startNewTransaction, Action`1 action, Action`1 retry) at Altiris.NS.ContextManagement.DatabaseContext.PerformWithDeadlockRetry(Int32 retries, Action`1 action, Action`1 retry) at Altiris.NS.AgentManagement.PolicyRequest.LoadItemPolicy(String request, Guid requestGuid, Guid resourceGuid, Guid hostGuid, Guid policyGuid, String& policy, String& policyHash, Guid& category, Int32& priority, Boolean& canCache, ISet`1& requiredPermissions, ISet`1& filterCollections) ) ( Exception logged from: at Altiris.Diagnostics.Logging.EventLog.ReportException(Int32 severity, String strMessage, String category, Exception exception) at Altiris.NS.Logging.EventLog.ReportException(Int32 severity, String strMessage, String category, Exception exception) at Altiris.NS.AgentManagement.PolicyRequest.LoadItemPolicy(String request, Guid requestGuid, Guid resourceGuid, Guid hostGuid, Guid policyGuid, String& policy, String& policyHash, Guid& category, Int32& priority, Boolean& canCache, ISet`1& requiredPermissions, ISet`1& filterCollections) at Altiris.NS.AgentManagement.PolicyRequest.LoadItemPolicies(String request, String configVers, Guid hostGuid, List`1 idents, SortedDictionary`2& policies, SortedDictionary`2& hashes) at Altiris.NS.AgentManagement.PolicyRequest.GetPolicies(String request) at Altiris.Web.NS.Agent.GetClientPolicies.ProcessRequest(String& request, Byte[]& clientConfigData, String& clientConfigXml, Boolean& compress) at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Delegate.DynamicInvokeImpl(Object[] args) at Altiris.Common.Threading.LocalThreadPool.InvokeCallback(Object state) at Altiris.Common.Threading.LocalThreadPool.ExecuteUserWorkItem(UserWorkItem workItem)
at Altiris.NS.Threading.NSThreadPool.ExecuteUserWorkItem(UserWorkItem workItem) at System.Threading.ExecutionContext.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at Altiris.Common.Threading.LocalThreadPool.ExecuteUserWorkItemInContext(UserWorkItem workItem) at Altiris.Common.Threading.LocalThreadPool.ThreadPoolProc(Object threadStartParameter) at System.Threading.ThreadHelper.ThreadStart(Object obj) ) ( Extra Details: Type=Altiris.NS.Exceptions.AeXException Src=Altiris.NS.StandardItems Inner Extra Details: Type=Altiris.NS.Exceptions.AeXException Src=Altiris.NS.StandardItems )","Altiris.NS.AgentManagement.PolicyRequest.LoadItemPolicy","w3wp","37"
There are 3 ways to resolve this issue. Each subsequent method involves more work, so it is recommended to go through the easiest first, and only proceed if it does not work.
First Method
This method requires a working environment. Support can supply a working package to complete these steps.
- In the Symantec Management Console browse under Manage > All Resources.
- Browse in the right-hand pane under Default > All Resources > Package > Software Package.
- In the search field in the right-pane, found in the upper right, type: Software Management
- Find the Software Management Plug-in for Windows Package, right-click, and choose Export.
- Save the file, and transport it to the Notification Server that is having the issue.
- At the same location above, right-click on Software Package and select Import.
- Browse to the file that was copied over in step 5.
- Done! In many cases this resolves the issue.
Second Method
The second method does not require a working environment, but requires additional steps. It is recommended to take a backup for your database before using the second or third methods to resolve this issue. This is only a precaution, and I have not had issues with these methods in the past.
- In the Symantec Management Console, browse under Settings > Console > Views.
- In the left-hand pane browse under Software and select the Software Catalog.
- In the search field in the right pane, located in the upper right, type Software Management
- In this list, locate all versions for the Software Management Plug-in for Windows.
- For any entry that shows a disk for the icon (seen in the screenshot for step 10) right-click and choose Delete.
- Right-click on the resource that contain packages, shown as a different icon, and choose Properties.
- Copy out the GUID listed for this resource.
- Run the following query against the database, using the GUID found from step 7.
UPDATE RM_ResourceSoftware_Release
SET Attributes = '0'
WHERE [Guid] = '80328534-9d5c-4343-bcad-bda7ecf9621f'
- Reload the Symantec Management Console and browse back to the Software Catalog, using the search filter.
- Right-click on the Software Resource for the Software Management Plug-in for Windows and choose Delete.
- Make sure no Inventory (disk) or Release (computer with disk) plug-in items remain.
- Open a command window (right-click, Run ad Administrator).
- Browse to the following location where the platform is installed: \Program Files\Notification Server\Bin\
- Now run the following command-line, NOTE that locations will need to be set to your install directories: C:\Program Files\Notification Server\Bin\AeXConfig.exe /configure “C:\Program Files\Altiris\SoftwareManagementSolution\Config\SoftwareManagementSolution.config”
- To review the progress, open Log View and filter on “AeXConfig”. This will allow you to see the entries as the reconfigure is occurring.
- Done! If this does not resolve the issue, the logs gathered during the reconfiguration are vital.
Third Method
The third method uses a more messy, dramatic approach. It also requires the steps used in the previous approach.
- Walk through steps 1 through 11 of the Second method.
- From the logs gathered during steps 12 through 16 of the second method, you’ll find an import error. This will include reference to the GUID found in step 8 of the second method. The key to this error is finding the other GUID in the error that causes the import to fail. Once that GUID is found, proceed. Message will state: “Unable to import resource (ref), a duplicate resource (ref) already exists”
- Open the following URL, which is a search query to use: www.symantec.com/docs/HowTo1191
- Paste the query into SQL Enterprise Manager. Change the GUID to the one found in the message to the location marked
/* Enter Search Guid here */ /*
Last Revision: 3 August 2012
*/
set transaction isolation level read uncommitted
/* Declare variables */
declare @strSql nvarchar(max),
@searchguid uniqueidentifier,
@lowrow smallint,
@SrchEvtTables bit,
@SrchCharTypes bit,
@SrchTextTypes bit,
@CharTypeColName varchar(200)
/* Enter Search Guid here */
set @searchguid = ltrim(rtrim('3e71856b-aadb-48d8-8264-0b36d1aac224'))
/* Search Event Tables: If you wish to disable searching the event tables then set
@SrchEvtTables to 0. This option was added since the event tables can get quite large
and many of the guid columns in them are not indexed. Disabling this will speed up the
query in such cases (at the cost of not searching those tables).
(Enabled: 1, Disabled: 0) */
set @SrchEvtTables = 1
/* Search Character Type Columns: There are some columns in the database that hold GUIDs,
but the column is not a uniqueidentifier type (they have the GUID as a character string
instead). If you want to search character column types (char, nchar, varchar, and nvarchar) then you must set the @SrchCharTypes value to 1.
- The results may take a minute or longer to complete. The last column contains Select statements. Select the entire column by clicking on the column header, and copy the data.
- Paste the data into a new query window.
- Hit Ctrl + H to bring up the find and replace window.
- Search for: SELECT *
- Replace with: DELETE
- Once done, run the query to delete this object from the database’s tables.
- Now run through steps 12 through 15 of the second method.
- Done!
If the problem persists, please contact Symantec Support for assistance.