Article Content
Article Number | 000035969 |
Applies To | RSA Product Set: Archer RSA Version/Condition: 6.x |
Issue | During the installation, an error similar to the example below is reported and the installation is halted. In the example below, the installation was performed with RSA Archer 6.3 P1 HF1. Set log directory C:\Program Files\RSA Archer\Install_Logs2\ Updating .Net Framework Registry Key Installing database Loading database script resources SetupUtils.Database.SqlException: An error occurred at step 179 of script objects.sql (length=865, max=16786) ---> System.Data.SqlClient.SqlException: Must declare the scalar variable "@jobId". 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& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at SetupUtils.Database.ScriptExecutor.ExecuteCommand(String scriptName, String cmdText, Int32 step) --- End of inner exception stack trace --- at Archer.Installer.Pages.PerformInstallationPage.InstallDatabase(Operation dbOp, String connectionString, String instanceName, Boolean allowSkipOnError) at Archer.Installer.Pages.DBOperationHandler.Execute() at Archer.Installer.Pages.PerformInstallationPage.OnWizardNext(WizardPageEventArgs e) The full sql statement follows: /************************************** Copyright (c) 2000-2011 EMC Corporation All Rights Reserved **************************************/ -- Purpose: After the top job available is found across each instance, -- an async engine attempts to mark the job in a way that the job will not be found by another engine -- ============================================= CREATE PROCEDURE [dbo].usp_async_job_queue_distributed_reserve_job @jobid UNIQUEIDENTIFIER WITH ENCRYPTION AS BEGIN SET NOCOUNT ON SET TRANSACTION ISOLATION LEVEL READ COMMITTED BEGIN TRANSACTION UPDATE [dbo].[tblAsyncJobQueue] SET process_id = 0 WHERE JobId = @jobId AND process_id IS NULL SELECT @@rowcount AS updated COMMIT TRANSACTION END Inner exception: System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@jobId". 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& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at SetupUtils.Database.ScriptExecutor.ExecuteCommand(String scriptName, String cmdText, Int32 step) ClientConnectionId:3cee89cc-06e3-463a-a4c4-c926d23b69af Error Number:137,State:2,Class:15 SetupUtils.Database.SqlException: An error occurred at step 179 of script objects.sql (length=865, max=16786) ---> System.Data.SqlClient.SqlException: Must declare the scalar variable "@jobId". 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& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at SetupUtils.Database.ScriptExecutor.ExecuteCommand(String scriptName, String cmdText, Int32 step) --- End of inner exception stack trace --- at Archer.Installer.Pages.PerformInstallationPage.InstallDatabase(Operation dbOp, String connectionString, String instanceName, Boolean allowSkipOnError) at Archer.Installer.Pages.DBOperationHandler.Execute() at Archer.Installer.Pages.PerformInstallationPage.OnWizardNext(WizardPageEventArgs e) The full sql statement follows: /************************************** Copyright (c) 2000-2011 EMC Corporation All Rights Reserved **************************************/ -- Purpose: After the top job available is found across each instance, -- an async engine attempts to mark the job in a way that the job will not be found by another engine -- ============================================= CREATE PROCEDURE [dbo].usp_async_job_queue_distributed_reserve_job @jobid UNIQUEIDENTIFIER WITH ENCRYPTION AS BEGIN SET NOCOUNT ON SET TRANSACTION ISOLATION LEVEL READ COMMITTED BEGIN TRANSACTION UPDATE [dbo].[tblAsyncJobQueue] SET process_id = 0 WHERE JobId = @jobId AND process_id IS NULL SELECT @@rowcount AS updated COMMIT TRANSACTION END Inner exception: System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@jobId". 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& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at SetupUtils.Database.ScriptExecutor.ExecuteCommand(String scriptName, String cmdText, Int32 step) ClientConnectionId:3cee89cc-06e3-463a-a4c4-c926d23b69af Error Number:137,State:2,Class:15 |
Cause | This issue is caused by the collation settings of the Server level. The Server was set to Turkish collation in the example above. |
Resolution | The resolution to this issue is to change the DB server collation settings to SQL_Latin1_General_CP1_CI_AS to match the DB collation. After making this change the installation can be completed successfully. |