Any attempt to assign a software delivery package to replicate to specific Package Servers only, as seen in the screenshot below, would result in a successful rendering of Page 1, but as soon as Page 2 or "All" was selected to display, the page fails to load and the following is logged in the NS log file:
First select "Package Servers Individually"
Second: The grid will now load and display the first 10 Package Servers available (no screenshot). Clicking on Page 2 or "All" in the display to show Package Server 11 - 20 causes the following error to be displayed:
At the time this error is displayed, the following is the cooresponding entry in the Notification Server Log File:
Notification Server Log FileName: C:\Program Files\Altiris\Notification Server\Logs\a.logPriority: 1
Date: 03/25/2009 3:21:38 PM
Tick Count: 907310281
Host Name: SERVERNAME
Process: w3wp.exe (8476)
Thread ID: 9076
Description: Unable to bind the grid to the GUIDs of the selected sites or package servers for PkgSvrSelectionCtrl ( Unhandled exception. Type=System.Data.SqlClient.SqlException Msg=Violation of PRIMARY KEY constraint 'PK__#ExceptionGuids___38DD2856'. Cannot insert duplicate key in object 'dbo.#ExceptionGuids'.
The statement has been terminated. Src=.Net SqlClient Data Provider
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
at Altiris.NS.UI.Controls.PkgSvrSelectionCtrl.GetAssignmentTable(PkgSvrAssignmentType method)
at Altiris.NS.UI.Controls.PkgSvrSelectionCtrl.BindGrid() )
To display the grid that lists the available Package Servers, Notification Server does a lookup against the known package servers and attempts to write that list to a temporary SQL table named #ExceptionGUIDS. The temporary table is built using a no duplicate key. In this case, duplicate Package Servers were attempting to be written to the temporary table and causing the error message.
The solution is to identify the Package Server that is attempting to be duplicated in the #ExceptionsGUIDs list then remove the offending Package Server from the Package Servers list. There are two options to determine this, Option 1 is to run the SQL statement in SQL Management Studio used by the stored procedure, Option 2, is to run Altiris Profiler to capture the data.
Option 1: Identify the Package GUID and then run a SQL query to find the duplicates.
Note: It is recommended to add the Package Servers one at a time in the event there are additional problems with a specific Package Server. In a few instances, it was necessary to uninstall all components of the Altiris NS Agent from the Package Server before being able to successfully re-add it. If the previous steps did not correct the issue proceed to Option 2 to use Profiler.
Option 2: Use Altiris Profiler to find the GUID of the offending Package Server:
Notification Server 6.0 SP3 R9 and later.