"Key violation, duplicate resource key has been found in task server list" error occurring in the logs

Article:TECH199328  |  Created: 2012-11-04  |  Updated: 2012-11-13  |  Article URL http://www.symantec.com/docs/TECH199328
Article Type
Technical Solution


Issue



After deploying a new Site Server the client noticed that the Altiris Logs were being filled with an error message regarding the newly deployed Site Server.


Error



Log File Name: C:\ProgramData\Symantec\SMP\Logs\a.log
Priority: 2
Date: 5/11/2012 9:48:49 a.m.
Tick Count: 92689562
Host Name: XXXXX
Process: w3wp (3436)
Thread ID: 3
Module: w3wp.exe
Source: Altiris.TaskManagement.ClientTask.AgentWeb.ClientTaskServersHelper.GetTaskServers
Description: Key violation, duplicate resource key has been found in task server list. 74a9054f-078f-47e6-a7c0-fa473dffd0c7

Environment



Symantec Management Platform 7.1 SP2

Windows 2008 R2


Cause



This has been confirmed to be a product defect.

Routinely the SMP executes the following SQL Query to determine the exact number of Site Servers which have the Task Service installed:

SELECT CASE WHEN tcp.[Primary DNS Suffix] IS NOT NULL AND tcp.[Primary DNS Suffix] != '' THEN
[Host Name] + '.' + tcp.[Primary DNS Suffix]
WHEN [Host Name] IS NOT NULL THEN [Host Name]
WHEN [Host Name] IS NULL THEN vci.Name END,
vci.Guid
FROM [dbo].[vTaskServiceResource] vts
JOIN [dbo].vRM_Computer_Item vci on vts.ResourceGuid = vci.Guid
INNER JOIN dbo.Inv_AeX_AC_Client_Agent ca on ca._ResourceGuid = vci.Guid and ca.Ident = 'CTSERVAGENT'
LEFT JOIN Inv_AeX_AC_TCPIP tcp ON tcp._ResourceGuid = vci.Guid AND
tcp.[_id] = (SELECT TOP 1 t.[_id]
FROM [Inv_AeX_AC_TCPIP] t
WHERE vts.[ResourceGuid]=t.[_ResourceGuid] AND t.[IP Address] NOT IN ('127.0.0.1', '0.0.0.0', '') AND NOT t.[IP Address] IS NULL
ORDER BY t.Routable DESC)

However, in this instance the above SQL Query returned multiple rows for the affected Site Server. This was because there were two entries in the Inv_AeX_AC_Client_Agent table which referred to the 'CTSERVAGENT' ident.

Normally when a Site Server has the Task service installed it has two instances of the 'Altiris Client Task Server Agent' installed, a x86 and x64 version. However, only the x86 version should be listed in the Inv_AeX_AC_Client_Agent table with the 'CTSERVAGENT' ident


Solution



This issue will be resolved in an upcoming pointfix. The current solution is to remove the errornous second entry in the Inv_AeX_AC_Client_Agent table. This was accomplished by executing the following SQL Query:

DELETE FROM Inv_AeX_AC_Client_Agent
WHERE _ResourceGuid = 'ENTER GUID HERE'
AND [Install Path] = 'ENTER THE PATH TO CTServerAgent_x64.dll'
AND Ident = 'CTSERVAGENT'


Supplemental Materials

SourceETrack
Value2734337


Article URL http://www.symantec.com/docs/TECH199328


Terms of use for this information are found in Legal Notices