Client Management Suite

 View Only
  • 1.  Altiris Console 7.0 Symantec Management Server Error

    Posted Feb 25, 2010 02:08 PM
    Hi all,

    I'm having an issue with the CMS suite. The Altiris Console loads up but with an error on the page. (See Note 1). Also at the same time there is a log in the event ID 1309:  ASP.Net 2.0.50727.0 (See Note 2).In the Altirs Log Viewer I get the following (See Note 3) at the exact time

    The DB server is SQL 2005 on a separate box 64 bit.

    This thing just started happening (no changes on the server)
    I've tried repairing all suites/ add ons (using SIM)
    I've created Maintenance Plans on my DB to re-index tables
    I've opened a call with Symantec Support and they are scratching their head with no clue on what might be the cause (two days and still waiting for an answer)

    I am at a point now that I just want to re-install everything. It has only been in prod only for three months (900 Agents deployed) and only use PCAnywhere, Software Delivery, Inventory Solution so far. I have 15 site servers. My question is (sorry it took a while to get to the point) since my DB is on a separete box, can I jsut whipe out the NS 7 server and re-install everything from scratch and point to the old DB schemas. Will I loos all the NS config, have to re-install Agents, re-create my software packages etc?

    Thanks in advance for all your inputs

    Cheers



     NOTE 1

    Symantec Management Server Error

    An error has occurred that prevents the Symantec Management Console displaying correctly.

    If this page is shown in place of a page or web part in the Symantec Management Console, navigate back to the page using the menu or tree and continue working. If the problem persists, see your local network administrator.

    If this page is shown in place of the Symantec Management Console, one of the following could be the cause:

    • The "Altiris Service" service is not running. Start this service on the server and reload the console.
    • The account used for either the "Altiris Service" or the Notification Server webs is incorrect, disabled or the password for the account has expired. On the Notification Server computer, run "C:\Program Files\Altiris\Notification Server\bin\AeXConfig.exe /svcid user:(user name) password:(password)]", substituting the correct installation path if a non-default location was used, to provide a new account.
    • The name of the Notification Server computer has been renamed. The following steps will need to be taken to correct this:
      • If SQL Server is installed on the same machine as the Notification Server:
      • Open the file [NS INSTALL DIRECTORY]\Notification Server\Config\CoreSettings.config, search for the word 'key=DBServer'. Replace the 'value' attribute of the found XML element from the previous server name to the new server name.
      • If account used for either the "Altiris Service" or the Notification Server webs is a local user (i.e. Not a domain user), you will need to update the account to the new name. You can do so by following the 2nd bullet points on this page.
      • Open Registry Editor, browse to the registry key "HKLM\SOFTWARE\Altiris\express\Notification Server\". Find and replace any value that contains the old server name with the new name.
      • Re-push the agent out to all previously managed machines. (#)
      • Run the Windows schedule named "NS.Package Refresh" to re-validate site/package server packages. To get to the Windows schedules, go to 'Start' > 'Control Panel' > 'Scheduled Tasks'.
      • If you have hierarchy set up, you will need to remove and re-add the renamed server to the hierarchy. To do so, go to the "Hierarchy Management" page under the menu "Settings" > "Notification Server" > "Hierarchy".

    In both cases, the Symantec Management Server log and the Windows Event log may contain useful information. The Symantec Management Server log can be accessed on the server by running "Start" menu > "All Programs" > "Altiris" > "Diagnostics" > "Altiris Log Viewer".

    (#) If the NS hosted computer has yet been renamed, a better alternative would be to point all NS clients to the new server name first. You can do this by going to the menu "Settings" > "Agents/Plug-ins" > "Targeted Agent Settings". For each policy in the list, select the "Advanced" tab and specifies the new server name under the "Alternative URL for accessing NS" section. By doing this, all the clients will work automatically once the NS server has been renamed.

     NOTE 2


    Event code: 3005

    Event message: An unhandled exception has occurred.

    Event time: 2/25/2010 1:28:02 PM

    Event time (UTC): 2/25/2010 6:28:02 PM

    Event ID: fc1de60d835d40b7b5e490bed2ee87f4

    Event sequence: 79

    Event occurrence: 2

    Event detail code: 0

     

    Application information:

    Application domain: /LM/W3SVC/1/Root/Altiris/Console-6-129115958591093750

    Trust level: Full

    Application Virtual Path: /Altiris/Console

    Application Path: D:\Program Files\Altiris\CustomConsole\Web\

    Machine name: altirisservername

     

    Process information:

    Process ID: 3392

    Process name: w3wp.exe

    Account name: NT AUTHORITY\NETWORK SERVICE

     

    Exception information:

    Exception type: InvalidDatabaseContextException

    Exception message: Database context invalidated by inner exception

     

    Request information:

    Request URL: http://localhost/Altiris/Console/tree.aspx?TreeGuid=a57fb0e9-0676-4e00-929a-6bb37dc1f888&RootNode=455ae0db-ec74-455b-b262-89421c96908d&&ConsoleGuid=1b22db4e-a898-443f-9b99-855b1653d3f5

    Request path: /Altiris/Console/tree.aspx

    User host address: 127.0.0.1

    User: domain\altiris account 

    Is authenticated: True

    Authentication Type: Negotiate

    Thread account name: domain\altiris account 

     

    Thread information:

    Thread ID: 121

    Thread account name: domain\altiris account 

    Is impersonating: False

    Stack trace: at Altiris.Database.DatabaseContext`1.ProcessException(Exception exception)
    at Altiris.NS.ContextManagement.DatabaseContext.ProcessException(Exception exception)
    at Altiris.NS.DataAccessLayer.Implementation.Altiris_NS_Security_DataAccessLayerSecurityDataAccessLayer.spSecurityCacheGetGrantedPermissionsBatch(String EntityGuidsTempTable, String TrusteeGuidsTempTable)
    at Altiris.NS.Security.SecurityCache.PrecachePermissions(ISet`1 entityGuids, ISet`1 membership)
    at Altiris.NS.Security.SecurityCache.Demand(ISet`1 entityGuids, ISet`1 requiredPermissions, ISet`1 membership)
    at Altiris.NS.Tree.Filters.SecurityTreeFilter.Filter(ISet`1 nodes, TreeFragment tree)
    at Altiris.NS.Tree.TreeBuilder.ApplyFilter(ITreeFilter filter, TreeFragment tree, ISet`1 newNodes)
    at Altiris.NS.Tree.TreeBuilder.ApplyFilters(TreeFragment tree, ISet`1 newNodes)
    at Altiris.NS.Tree.QueryItemTreeBuilder.RetrieveTreeFragmentRecursive(TreeFragment tree, IList`1 nodes, Int32 depth, IDictionary`2 overridesUsed)
    at Altiris.NS.Tree.TreeBuilder.RetrieveFragment(IList`1 nodes, Int32 depth)
    at Altiris.NS.Tree.TreeBuilder.RetrieveFragment(Guid node, Int32 depth)
    at Altiris.Console.WebControls.UITreeUtils.GetTreeAsXml(Guid treeGuid, String startGuid, Hashtable urlArgs)
    at Altiris.Console.WebControls.UITreeUtils.AddTreeNodes(Guid treeGuid, String startGuid, Boolean demandLoad, Boolean expandRootNodes, Hashtable urlArgs)
    at Altiris.Console.WebControls.UITreeUtils.AddTreeNodes(Guid treeGuid, String startGuid, Boolean demandLoad, Boolean expandRootNodes)
    at Altiris.Console.WebControls.UITreeUtils.AddTreeNodes(Guid treeGuid, String startGuid, Boolean demandLoad)
    at Altiris.Console.WebControls.UITreeUtils.AddTreeNodes(Guid treeGuid, String startGuid)
    at Altiris.CustomConsole.Web.Tree.PopulateTrees()
    at Altiris.CustomConsole.Web.Tree.Render(HtmlTextWriter writer)
    at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
    at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
    at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

     

     

    NOTE 3


    Log File Name: D:\Program Files\Altiris\Notification Server\Logs\a.log
    Priority: 1
    Date: 2/25/2010 1:38:53 PM
    Tick Count: 1192796
    Host Name: Altiriscomputername
    Process: AtrsHost (2320)
    Thread ID: 59
    Module: AtrsHost.exe
    Source: Altiris.TaskManagement.Data.TaskExecutionInstance.KillChildInstances
    Description: TaskExecutionInstance.TryKillChildInstances(): Error killing child instances for ad842d4f-c3fe-4692-b626-d3e7871a2a17: System.Exception: Unable to execute stored procedure CtsKillChildInstancesNotComplete as scalar ---> System.Data.SqlClient.SqlException: Could not find stored procedure 'dbo.tmLockTaskInstanceTables'.
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
       at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
       at System.Data.SqlClient.SqlDataReader.get_MetaData()
       at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
       at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
       at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
       at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
       at System.Data.SqlClient.SqlCommand.ExecuteScalar()
       at Altiris.DotNetLib.Data.DbHelper.ExecuteStoredProcScalar(SqlCommand cmd, String Name, Object[] NameTypeValueParams)
       --- End of inner exception stack trace ---
       at Altiris.DotNetLib.Data.DbHelper.ExecuteStoredProcScalar(SqlCommand cmd, String Name, Object[] NameTypeValueParams)
       at Altiris.TaskManagement.ClientTask.Data.ClientTaskExecutionInstance.OnKillChildInstances(DatabaseContext ctx, ExecutionResult result)
       at Altiris.TaskManagement.Data.TaskExecutionInstance.TryKillChildInstances(DatabaseContext ctx, Object state)
       at Altiris.TaskManagement.Data.AltirisSqlHelper.RepeatForDeadlocks(Int32 retries, Int32 sleep, Object state, RepeatForDeadlocksDelegate func)
       at Altiris.TaskManagement.Data.TaskExecutionInstance.KillChildInstances(ExecutionResult res)


  • 2.  RE: Altiris Console 7.0 Symantec Management Server Error

    Posted Feb 25, 2010 02:33 PM
    Altiris KB51624 specifically mentions the issue in note 3. It does appear that in any case, your console connection is having issues authenticating to the SQL box.


  • 3.  RE: Altiris Console 7.0 Symantec Management Server Error

    Posted Feb 26, 2010 05:22 PM
    Did call support and they advised that their developers are stil looking into the cause and the resolution as per the article you pointed out

    Re-installed everything, then pointed the DB to the old schemas and more problems surfaced. I think the DB somehow was corrupted.

    Ended up wiping everything and pointing to new DB schemas. I'm still re-configuring NS and Site Servers, but at least the agents picked up the new server (I don't have to re-deploy them)

    Sigh..


  • 4.  RE: Altiris Console 7.0 Symantec Management Server Error

    Posted Mar 08, 2010 11:41 AM

    I ran into this problem twice. Once is because we setup a SQL backup on the same SQL server and I ran out of disk space. Verify the SQL server has enough disk space free.

    The next time we cleaned up some SQL tables.
    run the follow query in the express database:

    select
    * from Evt_NS_Client_Config_Generation

    If that returns a lot of tables you may want to truncate the tables... just an idea... just something I fixed when we had that same error.

    here is the SQL executed commands for that:

    /*

    / Database Table Size SORTING USAGE @SortOrder int VALUES

    / 0 = Alphabetically by table name [Table_Name]

    / 1 = Sorted by table size [Total Space Used]

    / 2 = Sorted by all table sizes

    */

    set

    nocount on

    declare

    @CmdStr varchar(200)

    declare

    @SortOrder int

    -- Set display option

    set

    @SortOrder = 2

    if

    (object_id('tempdb..#Temp_Table') is null) begin

     

    --Create Temporary Table

     

    create table #Temp_Table (

    [Table_Name]

    varchar(200),

    [Row_Count]

    int,

    [Table_Size]

    varchar(50),

    [Data_Space_Used]

    varchar(50),

    [Index_Space_Used]

    varchar(50),

    [Unused_Space]

    varchar(50)

     

    )

    end

    else

    begin

     

    truncate table #Temp_Table

    end

    --Create Stored Procedure String

    set

    @CmdStr = 'sp_msforeachtable ''sp_spaceused "?"'''

    --Populate Temporary Table

    insert

    into #Temp_Table execute(@CmdStr)

    -- Retrieve Table Data and Sort Alphabetically

    if

    (@SortOrder = 0) begin

     

    select

    [Product Name]

     

     

    = vp.[name],[Table Name] = tt.[Table_Name],[Type] = case cast(dc.[ClassType] as int)

     

    when '0' then 'User'

     

    when '1' then 'Event'

     

    when '2' then 'Common'

     

    end

     

     

    ,[Row Count] = tt.[Row_Count],[Total (KB)] = cast(substring(tt.[Table_Size], 1, charindex(' ',tt.[Table_Size]))as int)

     

    ,[Data (KB)] = cast(substring(tt.[Data_Space_Used], 1, charindex(' ',tt.[Data_Space_Used]))as int)

     

    ,[Index (KB)] = cast(substring([Index_Space_Used], 1, charindex(' ',tt.[Index_Space_Used]))as int)

     

    ,[Unused (KB)] = cast(substring(tt.[Unused_Space], 1, charindex(' ',tt.[Unused_Space]))as int)

     

     

     

     

     

     

     

     

    from #Temp_Table ttjoin DataClass dc on dc.[DataTableName] = tt.[Table_Name]or dc.[HistoryTableName] = tt.[Table_Name]join item it on it.[guid] = dc.[guid]join vProduct vp on it.[ProductGuid] = vp.[guid]where cast(substring(tt.[Data_Space_Used], 1, charindex(' ',tt.[Data_Space_Used]))as int) > 0order by [Product Name], [Type], [Table_Name]end

    -- Retrieve Table Data and Sort by the size of the table

    if

    (@SortOrder = 1) begin

     

    select

    [Product Name]

     

     

    = vp.[name],[Table Name] = tt.[Table_Name],[Type] = case cast(dc.[ClassType] as int)

     

    when '0' then 'User'

     

    when '1' then 'Event'

     

    when '2' then 'Common'

     

    end

     

     

    ,[Row Count] = tt.[Row_Count],[Total (KB)] = cast(substring(tt.[Table_Size], 1, charindex(' ',tt.[Table_Size]))as int)

     

    ,[Data (KB)] = cast(substring(tt.[Data_Space_Used], 1, charindex(' ',tt.[Data_Space_Used]))as int)

     

    ,[Index (KB)] = cast(substring(tt.[Index_Space_Used], 1, charindex(' ',tt.[Index_Space_Used]))as int)

     

    ,[Unused (KB)] = cast(substring(tt.[Unused_Space], 1, charindex(' ',tt.[Unused_Space]))as int)

     

     

     

     

     

     

     

    from #Temp_Table ttjoin DataClass dc on dc.[DataTableName] = tt.[Table_Name]or dc.[HistoryTableName] = tt.[Table_Name]join item it on it.[guid] = dc.[guid]join vProduct vp on it.[ProductGuid] = vp.[guid]where cast(substring(tt.[Data_Space_Used], 1, charindex(' ',tt.[Data_Space_Used]))as int) > 0order by [Total (KB)] desc, [Table_Name]

    end

    -- Retrieve Table Data and sort by all table sizes

    if

    (@SortOrder = 2) begin

     

    select

    [Product Name]

    = isnull(vp.[name], 'Core')

     

     

    ,[Table Name] = tt.[Table_Name],[Type] = case cast(dc.[ClassType] as int)

     

    when '0' then 'User'

     

    when '1' then 'Event'

     

    when '2' then 'Common'

     

    else 'Core'

     

    end

     

     

    ,[Row Count] = tt.[Row_Count],[Total (KB)] = cast(substring(tt.[Table_Size], 1, charindex(' ',tt.[Table_Size]))as int)

     

    ,[Data (KB)] = cast(substring(tt.[Data_Space_Used], 1, charindex(' ',tt.[Data_Space_Used]))as int)

     

    ,[Index (KB)] = cast(substring(tt.[Index_Space_Used], 1, charindex(' ',tt.[Index_Space_Used]))as int)

     

    ,[Unused (KB)] = cast(substring(tt.[Unused_Space], 1, charindex(' ',tt.[Unused_Space]))as int)

     

     

     

     

     

     

     

    from #Temp_Table ttleft join DataClass dc on dc.[DataTableName] = tt.[Table_Name]or dc.[HistoryTableName] = tt.[Table_Name]left join item it on it.[guid] = dc.[guid]left join vProduct vp on it.[ProductGuid] = vp.[guid]where cast(substring(tt.[Data_Space_Used], 1, charindex(' ',tt.[Data_Space_Used]))as int) > 0order by [Total (KB)] desc, [Table_Name]

    end