The Customer is upgrading their environment from ITMS 7.6 HF7 to ITMS 8.0 HF5.
During the upgrade, the customer is getting a failure message during the database configuration:
ConfigureNS - task_Completed(): Configuration Task Configuring database...
Failed: Arithmetic overflow error converting expression to data type bigint.
The statement has been terminated.
Message 1:
Configuring task 11 of 122: Configuring database...
-------------------------------------------------------------------------------------------------
Date: 1/5/2017 10:20:04 AM, Tick Count: 9383725 (02:36:23.7250000), Size: 372 B
Process: SymantecInstallationManager (4800), Thread ID: 27, Module: SymantecInstallationManager.exe
Priority: 4, Source:
Symantec.Installation.Automation.ConsoleEvents.InstallManager_ConfigureProgressEvent
Message 2:
Failure 2 during product configure:(exception: Arithmetic overflow error converting expression to data type bigint.
The statement has been terminated.). Trying again in 20 seconds....
-------------------------------------------------------------------------------------------------
Date: 1/5/2017 10:23:32 AM, Tick Count: 9591815 (02:39:51.8150000), Size: 469 B
Process: SymantecInstallationManager (4800), Thread ID: 27, Module: SymantecInstallationManager.exe
Priority: 4, Source: Symantec.Installation.ConfigureNS.task_Completed
Error 1:
ConfigureNS - task_Completed(): Configuration Task Configuring database...
Failed: Arithmetic overflow error converting expression to data type bigint.
The statement has been terminated.
Arithmetic overflow error converting expression to data type bigint.
The statement has been terminated.
[System.Data.SqlClient.SqlException @ .Net SqlClient Data Provider]
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,
SqlCommand
cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1
completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean
asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Altiris.NS.DataAccessLayer.DatabaseAbilities.ExecuteNonQuery(String
sql)
at Altiris.NS.ContextManagement.AdminDatabaseContext.
<>c__DisplayClass1`1.
<PerformTransactedDeadlockRetry>b__0(IDatabaseContext ctx)
at Altiris.NS.ContextManagement.AdminDatabaseContext.PerformTransactedDeadlockR
etry (Action`1 action, String deadlockMessage, String category)
at Altiris.NS.ItemManagement.ItemHelper.ImportSqlNodes(XmlNodeList nodes,
Boolean installing, Boolean resetConnection)
at Altiris.NS.ItemManagement.ItemHelper.ImportSqlNodes(XmlNodeList nodes)
at Altiris.NS.ItemManagement.ItemHelper.ImportSql(XmlNode itemNode,
Boolean
inner)
at Symantec.Installation.NSConfiguration.Tasks.InstallSQLTask.InstallSQL()
at Symantec.Installation.NSConfiguration.Tasks.InstallSQLTask.StartAsync()
SQL Exception details: code=8115, line=20
Exception logged from:
at Symantec.Installation.Logging.LogActivity.ReportException(Int32
severity,
String strMessage, String category, Exception exception, String footer)
at Symantec.Installation.Logging.LogActivity.ReportException(String
strMessage, String category, Exception exception)
at Symantec.Installation.ConfigureNS.task_Completed(Object sender,
CompletedEventArgs e)
at Symantec.Installation.NSConfiguration.Tasks.InstallSQLTask.StartAsync()
at Symantec.Installation.ConfigureNS.StartCurrentTask()
at Symantec.Installation.ConfigureNS.task_Completed(Object sender,
CompletedEventArgs e)
at Symantec.Installation.NSConfiguration.Tasks.InstallSQLTask.StartAsync()
at Symantec.Installation.ConfigureNS.StartCurrentTask()
at Symantec.Installation.ConfigureNS.task_Completed(Object sender,
CompletedEventArgs e)
at Symantec.Installation.NSConfiguration.Tasks.InstallSQLTask.StartAsync()
at Symantec.Installation.ConfigureNS.StartCurrentTask()
at Symantec.Installation.ConfigureNS.task_Completed(Object sender,
CompletedEventArgs e)
at Symantec.Installation.NSConfiguration.Tasks.ConfigurationServicesTask.StartA
sync ()
at Symantec.Installation.ConfigureNS.StartCurrentTask()
at Symantec.Installation.ConfigureNS.task_Completed(Object sender,
CompletedEventArgs e)
at Symantec.Installation.ReportingTask.EndAsync(IAsyncResult result)
at System.Web.Services.Protocols.WebClientAsyncResult.Complete()
at System.Web.Services.Protocols.WebClientProtocol.ProcessAsyncResponseStreamResult
(WebClientAsyncResult client, IAsyncResult asyncResult)
at System.Web.Services.Protocols.WebClientProtocol.ReadAsyncResponseStream(WebClientAsyncResult client)
at System.Web.Services.Protocols.WebClientProtocol.ReadAsyncResponse(WebClientA
sync Result client)
at System.Web.Services.Protocols.WebClientProtocol.GetResponseAsyncCallback(IAs
yncResult asyncResult)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext
executionContext, ContextCallback callback, Object state, Boolean
preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext,
ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext,
ContextCallback callback, Object state)
at System.Net.ContextAwareResult.Complete(IntPtr userToken)
at System.Net.HttpWebRequest.ProcessResponse()
at System.Net.HttpWebRequest.SetResponse(CoreResponseData
coreResponseData)
at System.Net.ConnectionReturnResult.SetResponses(ConnectionReturnResult
returnResult)
at System.Net.Connection.ReadComplete(Int32 bytesRead, WebExceptionStatus
errorStatus)
at System.Net.Connection.ReadCallback(IAsyncResult asyncResult)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Net.ContextAwareResult.Complete(IntPtr userToken)
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32
errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32
errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
-------------------------------------------------------------------------------------------------
Date: 1/5/2017 10:27:39 AM, Tick Count: 9838671 (02:43:58.6710000), Size: 5.49 KB
Process: SymantecInstallationManager (4800), Thread ID: 27, Module: SymantecInstallationManager.exe
Priority: 1, Source: Symantec.Installation.ConfigureNS.task_Completed
Upgrade from ITMS 7.6 HF7 to 8.0
Known issue. Dev has updated the query for upgrade from SecurityACEData/SecurityTrusteePermission (7.6) to sec_EntityTrustee (8.0+).
This issue has been reported to Symantec Development team. A fix has been added to the ITMS 8.0 HF6 release.
In case you already tried to upgrade and it failed, the following has been provided as a workaround:
Please execute following steps:
1. backup all security tables:
SELECT *
INTO _tmp_SecurityEntity
FROM SecurityEntity
SELECT *
INTO _tmp_SecurityEntityACESource
FROM SecurityEntityACESource
SELECT *
INTO _tmp_SecurityACEData
FROM SecurityACEData
SELECT *
INTO _tmp_SecurityPermission
FROM SecurityPermission
SELECT *
INTO _tmp_SecurityPrivilegeTrustee
FROM SecurityPrivilegeTrustee
SELECT *
INTO _tmp_SecurityRole
FROM SecurityRole
SELECT *
INTO _tmp_SecurityTrustee
FROM SecurityTrustee
SELECT *
INTO _tmp_SecurityTrusteePermission
FROM SecurityTrusteePermission
2. execute following SQL-script:
IF NOT EXISTS ( SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sec_EntityTrustee]') AND type = N'U' ) BEGIN
CREATE TABLE [dbo].[sec_EntityTrustee]
(
EntityGuid uniqueidentifier NOT NULL,
TrusteeGuid uniqueidentifier NOT NULL,
Permission bigint NOT NULL,
Inherited bit NOT NULL,
CONSTRAINT [PK_sec_EntityTrustee] PRIMARY KEY CLUSTERED ( TrusteeGuid, EntityGuid, Inherited )
)
CREATE INDEX [IX_sec_EntityTrustee_TrusteeGuidPermission] ON [dbo].[sec_EntityTrustee] ( TrusteeGuid, Permission DESC ) INCLUDE ( EntityGuid )
CREATE INDEX [IX_sec_EntityTrustee_EntityGuidPermission] ON [dbo].[sec_EntityTrustee] ( EntityGuid, Permission ) INCLUDE ( TrusteeGuid )
-- Upgrade from SecurityACEData/SecurityTrusteePermission (7.6) to sec_EntityTrustee (8.0)
IF EXISTS ( SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SecurityACEData]') AND type = N'U' )
BEGIN
DECLARE @AppIdentityGuid2 uniqueidentifier
SELECT @AppIdentityGuid2 = [Value] FROM ServerSettingGuids WHERE [Name] = 'AppIdentityGuid'
INSERT INTO [dbo].[sec_EntityTrustee]
SELECT EntityGuid,
TrusteeGuid,
CASE WHEN SUM(Permission) >= 0x4000000000000000 THEN 0x7FFFFFFFFFFFFFFF ELSE SUM(Permission) END AS [Permission],
Inherited
FROM ( SELECT DISTINCT sa.EntityGuid, stp.TrusteeGuid, sa.Inherited, CASE sp.Mask WHEN 0x7FFFFFFFFFFFFFFF THEN 0x4000000000000000 ELSE sp.Mask END AS [Permission]
FROM sec_Entity se
JOIN SecurityACEData sa ON sa.EntityGuid = se.EntityGuid
JOIN SecurityTrusteePermission stp ON stp.Id = sa.TrusteePermissionId
JOIN sec_Permission sp ON sp.Guid = stp.PermissionGuid
JOIN sec_Trustee st ON st.TrusteeGuid = stp.TrusteeGuid
WHERE st.TrusteeGuid NOT IN ('2E1F478A-4986-4223-9D1E-B5920A63AB41', @AppIdentityGuid2)
AND ( sa.Inherited = 0 OR se.Flags = 64 )
) AS a
GROUP BY EntityGuid, TrusteeGuid, Inherited
ORDER BY 2, 1, 4
END
END
3. Start SIM. On main page you will see that all products are now 8.0 and are unconfigured. Now select Symantec Management Platform 8.0 and start configuration for it. SIM must reconfigure all products in this case. You can check, after configuration gets finished, that SIM shows products without warnings.
Note: In some cases you may notice that some stored procedures for Task Management are out-of-sync even after a repair from SIM. To make sure things are in the expected way for Task Management, run aexconfig.exe /configure against TaskManagement.config and TaskManagement_Hotfix.config (under ...\program files\altiris\TaskManagement) from the command prompt as administrator:
C:\Program Files\Altiris\Notification Server\Bin> aexconfig.exe /configure "C:\Program Files\Altiris\TaskManagement\Config\TaskManagement.config"
C:\Program Files\Altiris\Notification Server\Bin> aexconfig.exe /configure "C:\Program Files\Altiris\TaskManagement\Config\TaskManagement_Hotfix.config"
4. If all right remove temporary tables (see item 1)