Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
I've performed a Qlik Sense Enterprise upgrade from 3.1.4 to 3.2.1. The upgrade wizard indicated that the upgrade completed successfully. Now I cannot access either QMC or the Hub. The services appear to be running, but I see the following error in the System_Repository logs:
19 | 20170307T223709.030+0200 | INFO | SERVERNAME | System.Repository.Repository.QRSMain | 9 | 90d49e3a-2d0e-4a2d-ab36-5ae8031ca08c | NT AUTHORITY\SYSTEM | Entering main startup phase.. | 90d49e3a-2d0e-4a2d-ab36-5ae8031ca08c | |||
20 | 20170307T223710.301+0200 | INFO | SERVERNAME | System.Repository.Repository.Core.Migrations.Support.MigrationMonitor | 9 | 518ed2ad-fde2-49f7-84f7-020cd191e411 | NT AUTHORITY\SYSTEM | Database migration triggered.. | 518ed2ad-fde2-49f7-84f7-020cd191e411 | |||
21 | 20170307T223710.392+0200 | ERROR | SERVERNAME | System.Repository.Repository.QRSMain | 9 | fdd36f35-8d92-4e7c-987d-219a0524df26 | NT AUTHORITY\SYSTEM | Fatal exception | password authentication failed for user "qliksenserepository"↵↓The provider did not return a ProviderManifestToken string.↵↓An error occurred accessing the database. This usually means that the connection to the database failed. Check that the connection string is correct and that the appropriate DbContext constructor is being used to specify it or find it in the application's config file. See http://go.microsoft.com/fwlink/?LinkId=386386 for information on DbContext and connections. See the inner exception for details of the failure.↵↓An exception was thrown while invoking the constructor 'Void .ctor()' on type 'DatabaseContext'. ---> An error occurred accessing the database. This usually means that the connection to the database failed. Check that the connection string is correct and that the appropriate DbContext constructor is being used to specify it or find it in the application's config file. See http://go.microsoft.com/fwlink/?LinkId=386386 for information on DbContext and connections. See the inner exception for details of the failure. (See inner exception for details.)↵↓An exception was thrown while invoking the constructor 'Void .ctor(Qlik.Sense.Common.ITypeResolver, System.Func`1[Repository.Core.Repository.Database.Common.IDatabaseContext], Autofac.ILifetimeScope, Repository.Core.Repository.Common.ITransactionUtility, Repository.Core.Repository.Common.IRepositoryEntityCache, Repository.Core.INodeStaticInfo, Qlik.Sense.Logging.IQSLogManager, Repository.Core.Repository.Common.IRepositoryContentService, Repository.Core.Repository.Common.ILifetimeScopeEntityCache)' on type 'EntityTransactionRepository'. ---> An exception was thrown while invoking the constructor 'Void .ctor()' on type 'DatabaseContext'. ---> An error occurred accessing the database. This usually means that the connection to the database failed. Check that the connection string is correct and that the appropriate DbContext constructor is being used to specify it or find it in the application's config file. See http://go.microsoft.com/fwlink/?LinkId=386386 for information on DbContext and connections. See the inner exception for details of the failure. (See inner exception for details.) (See inner exception for details.)↵↓An exception was thrown while invoking the constructor 'Void .ctor(Qlik.Sense.Logging.IQSLogManager, Repository.Core.INodeStaticInfo, Qlik.Sense.Communication.Security.ICertSetup, Qlik.Sense.Common.Communication.REST.Server.IRESTEngineFactory, Repository.Core.ISystemInformation, Repository.Core.Certificates.ICertificatePasswordVerificationWebService, Qlik.Sense.Common.Logging.ILogMaster)' on type 'SetupService'. ---> An exception was thrown while invoking the constructor 'Void .ctor(Qlik.Sense.Common.ITypeResolver, System.Func`1[Repository.Core.Repository.Database.Common.IDatabaseContext], Autofac.ILifetimeScope, Repository.Core.Repository.Common.ITransactionUtility, Repository.Core.Repository.Common.IRepositoryEntityCache, Repository.Core.INodeStaticInfo, Qlik.Sense.Logging.IQSLogManager, Repository.Core.Repository.Common.IRepositoryContentService, Repository.Core.Repository.Common.ILifetimeScopeEntityCache)' on type 'EntityTransactionRepository'. ---> An exception was thrown while invoking the constructor 'Void .ctor()' on type 'DatabaseContext'. ---> An error occurred accessing the database. This usually means that the connection to the database failed. Check that the connection string is correct and that the appropriate DbContext constructor is being used to specify it or find it in the application's config file. See http://go.microsoft.com/fwlink/?LinkId=386386 for information on DbContext and connections. See the inner exception for details of the failure. (See inner exception for details.) (See inner exception for details.) (See inner exception for details.) | at Devart.Data.PostgreSql.w.x()↵↓ at Devart.Data.PostgreSql.w..ctor(PgSqlConnectionOptions A_0)↵↓ at Devart.Data.PostgreSql.b.a(t A_0, Object A_1, DbConnectionBase A_2)↵↓ at Devart.Common.DbConnectionFactory.a(DbConnectionPool A_0, t A_1, DbConnectionBase A_2)↵↓ at Devart.Common.DbConnectionPool.a(DbConnectionBase A_0)↵↓ at Devart.Common.DbConnectionPool.GetObject(DbConnectionBase owningConnection)↵↓ at Devart.Common.DbConnectionFactory.b(DbConnectionBase A_0)↵↓ at Devart.Common.DbConnectionClosed.Open(DbConnectionBase outerConnection)↵↓ at Devart.Common.DbConnectionBase.Open()↵↓ at Devart.Data.PostgreSql.PgSqlConnection.Open()↵↓ at Devart.Data.PostgreSql.Entity.y.a(DbConnection A_0, b& A_1)↵↓ at Devart.Data.PostgreSql.Entity.PgSqlEntityProviderServices.GetDbProviderManifestToken(DbConnection connection)↵↓ at System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)↵↓ at System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)↵↓ at System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked(DbProviderServices providerServices, DbConnection connection)↵↓ at System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked(DbProviderServices providerServices, DbConnection connection)↵↓ at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)↵↓ at System.Data.Entity.Utilities.DbConnectionExtensions.GetProviderInfo(DbConnection connection, DbProviderManifest& providerManifest)↵↓ at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)↵↓ at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)↵↓ at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)↵↓ at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()↵↓ at Repository.Core.Repository.Database.Common.AbstractDatabaseContext..ctor()↵↓ at lambda_method(Closure , Object[] )↵↓ at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()↵↓ at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()↵↓ at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)↵↓ at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters)↵↓ at Autofac.Core.Lifetime.LifetimeScope.GetOrCreateAndShare(Guid id, Func`1 creator)↵↓ at Autofac.Core.Resolving.InstanceLookup.Execute()↵↓ at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters)↵↓ at Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration registration, IEnumerable`1 parameters)↵↓ at lambda_method(Closure )↵↓ at Repository.Core.Repository.Common.EntityTransactionRepository..ctor(ITypeResolver typeResolver, Func`1 databaseContextProvider, ILifetimeScope containingScope, ITransactionUtility transactionUtility, IRepositoryEntityCache repositoryEntityCache, INodeStaticInfo nodeInfo, IQSLogManager logManager, IRepositoryContentService repositoryContentService, ILifetimeScopeEntityCache lifetimeScopeEntityCache)↵↓ at lambda_method(Closure , Object[] )↵↓ at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()↵↓ at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()↵↓ at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)↵↓ at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters)↵↓ at Autofac.Core.Resolving.InstanceLookup.Execute()↵↓ at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters)↵↓ at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()↵↓ at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)↵↓ at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters)↵↓ at Autofac.Core.Resolving.InstanceLookup.Execute()↵↓ at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters)↵↓ at Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration registration, IEnumerable`1 parameters)↵↓ at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)↵↓ at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)↵↓ at Autofac.ResolutionExtensions.Resolve[TService](IComponentContext context, IEnumerable`1 parameters)↵↓ at Repository.Core.Repository.Common.SecurityAwareRepository.<>c__DisplayClass51_0`1.<GetAllWithoutSecurity>b__0()↵↓ at Repository.Core.Repository.Common.SecurityAwareRepository.RunWithoutSecurity[TResult](Func`1 func)↵↓ at Repository.Core.Settings.LocalConfigStash.GetFromRepository(LocalConfigKey key, ISecurityAwareRepository repository)↵↓ at Qlik.Sense.Common.Ioc.WorkScope.Work[T,TResult](Func`2 func)↵↓ at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)↵↓ at Repository.Core.Settings.LocalConfigStash.TryGet(LocalConfigKey key, LocalConfigCachePolicy cachePolicy, ISecurityAwareRepository repository, LocalConfig& localConfig)↵↓ at Repository.Core.Settings.LocalConfigStash.Get(LocalConfigKey key, LocalConfigCachePolicy cachePolicy)↵↓ at Repository.Core.Settings.LocalConfigStash.Get | fdd36f35-8d92-4e7c-987d-219a0524df26 | |
22 | 20170307T223710.405+0200 | INFO | SERVERNAME | System.Repository.Repository.QRSMain | 9 | fe254572-e107-4301-b7b6-4d8787344094 | NT AUTHORITY\SYSTEM | Shutdown completed. Signing off.. | fe254572-e107-4301-b7b6-4d8787344094 |
Figured it out. Used the ConnectionStringEditor to look up the password for the qliksenserepository user, then went to pgAdmin to reset it to the expected value. Everything seems to be ok now.
Figured it out. Used the ConnectionStringEditor to look up the password for the qliksenserepository user, then went to pgAdmin to reset it to the expected value. Everything seems to be ok now.
Alex, during the upgrade did it prompt for repository database password? I just executed the installer and it just asked for service user password.
Also can i ask if you are facing any major issue in 3.2.1 in terms of overall functionality?
Jai,
I think it did ask for the superuser password.
We haven't run into other issues since the upgrade.
Actually, I was just reading the releases notes for 3.2.2 and remembered that we were experiencing one issue that is now fixed:
Jira issue ID: QLIK-73023
Description: When opening an app in the mashup editor or single
configurator, sometimes sheets, objects and master objects are not listed
in the Dev hub objects panel.
Hi Alex,
Could you please elaborate on - " ConnectionStringEditor to look up the password for the qliksenserepository user"? I am struggling here- is this a tool or command line utility?
My problem is that after I entered the service account password ( I used, run as administrator), it did not prompt me for database password during the upgrade. The upgrade was fine, services were running. But, HUB/QMC are not accessible.
Hi,
it's a tool located in your Qlik installation directory, by default in C:\Program Files\Qlik\Sense\Repository\Util\ConnectionStringEditor.
Many thanks.
May I ask about its encryption and decryption?
Sure, you may want to check this document too: https://community.qlik.com/servlet/JiveServlet/download/1172359-256508/Qlik_Sense_Shared_Persistence...
Hey Alex,
I am unable to find the ConnectionStringEditor in my QlikSense 3.0.0 installation.
There is only RepositorySnapshotManager folder in the Util folder :-
Qlik\Sense\Repository\Util\
I can't see ConnectionStringEditor. A blanket search on the server also didn't return any ConnectionStringEditor.
Can you please send the file from your installation?
Regards,
Kashif