Issue
PME Web Applications gives error "Source Measurement list did not load" when trying to add sources or measurements onto Dashboards, Trends. However, Reports will work. The error message states:
There was an error attempting to load the Source Measurement list from the server. The application is usable, but no selections can be added or edited. If this problem persists contact your system administrator.
The System Log will show errors with the Software Data Processing Service targeting the Active Configuration Host:
Problem creating processor configurations for Rule 'Configuration Rule': System.ArgumentNullException: Value cannot be null. Parameter name: id at System.TimeZoneInfo.FindSystemTimeZoneById(String id) at SE.IONServices.DataProcessor.DataProcessorHostScheduleManager.ConfigurationShouldBeActiveNow(IProcessingConfiguration configuration) at SE.IONServices.DataProcessor.DataProcessorHost.ActivateConfiguration(IProcessingConfiguration configuration) at SE.IONServices.DataProcessor.ActiveConfigurationHost.ActivateRule(ProcessingRule rule)
or
Exception has been thrown by the target of an invocation. at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
When looking into the Web Application Diagnostics Log Event, you will find the following errors:
"Could not initialize data source driver. Initialization has failed 1365 time(s). The last exception was: Error initializing cross reference cache."
"A problem occurred on page 'https://emsprod01/SystemDataService/Hierarchy/2015-07/View/AllWithTopics': An error occurred while accessing a system resource or another service. Please try again later."
or
Provider Engine request did not complete successfully for RealTime Data (1 pairs) LogClientExtendedInformation: Framework.Common.ClientServices.ProviderRequestException: A problem occurred calling provider 0abdb5d9-adb1-4e59-a45c-28baabc6a08a with parameters [{"SessionId":"4de8e2b7-4b55-4efe-99cc-59069bf5dd14","RefreshIntervalSeconds":10,"Pairs":[{"Source":"24","Measurement":"1601","IsHierarchyPair":false,"UniqueId":"e6c77675-6fa2-4d6d-8bf0-038d730f1add"}]}]: Exception has been thrown by the target of an invocation.
at Framework.Common.ClientServices.ProviderEngineHelper`1.GetData(Object[] parameters, Type[] typeHints, Boolean useCache, ILogger logger)
at Applications.Web.RealTime.Data.RealtimeDataFetch.GetProviderData(RealTimeDataRequest dataRequest)
Product Line
Power Monitoring Expert 9.0
Power Monitoring Expert 9.1
Power Monitoring Expert 2021
Power Monitoring Expert 2022
Power Monitoring Expert 2023
Environment
Web Applications
Cause 1
This occurs if there are sources defined multiple times in the table ApplicaDataSourceBus.DataSourceDevice in the ApplicationModules database and results in the error above when the source/measurement list is loaded in Dashboards and Trends. This error becomes clarified in the [Application Modules].[dbo].[LogEvent]:
LogClientException: Framework.Common.Exceptions.ModuleException: Error initializing cross-reference cache. ---> Framework.Common.Exceptions.ModuleException: Data Source Device [1-354.E-SSZ2-354-01-002-BMSB-01-MAIN] is defined multiple times.
at DataSourceDrivers.CrossReferenceCache`2.HandleDataSourceDeviceUpdate(String deviceRepresentation, DsdDevice existingDevice)
at System.Collections.Concurrent.ConcurrentDictionary`2.AddOrUpdate(TKey key, TValue addValue, Func`3 updateValueFactory)
at DataSourceDrivers.CrossReferenceCache`2.AddDsdDeviceToMap(DsdDevice device)
at DataSourceDrivers.CrossReferenceCache`2.InitializeDeviceMappings(IEnumerable`1 devices)
at DataSourceDrivers.CrossReferenceCache`2.Initialize(DsdInitializationData initializationData)
at DataSourceDrivers.CrossReferenceCache`2..ctor(DataSourceIdentity identity, DsdInitializationData initializationData)
at DataSourceDrivers.DataSourceInitializer`2.GetCacheFromDataSourceBus()
--- End of inner exception stack trace ---
at DataSourceDrivers.DataSourceInitializer`2.GetCacheFromDataSourceBus()
at DataSourceDrivers.DataSourceInitializer`2.UpdateCache()
at DataSourceDrivers.DataSourceInitializer`2.PerformInitialization()
at DataSourceDrivers.DataSourceInitializer`2.Initialize(Int32 dataSourceId, IDataSourceConfiguration configuration, IDataSourceBus dataSourceBus)
at DataSourceDrivers.DataSourceDriverStateManager.Initialize(IDataSourceBus dataSourceBus, CancellationToken cancellationToken)
at DataSourceDrivers.DataSourceDriverStateManager.AttemptInitialize(CancellationToken cancellationToken)
at DataSourceDrivers.DataSourceDriverStateManager.AttemptInitializeTemplate(CancellationToken cancellationToken)
LogClient: DataSourceDrivers::DataSourceDrivers.DataSourceInitializationLogger::LogWarningMessage
Cause 2
The SQL server account has lost access to the database either due to a loss in user mapping or a loss in credentials. Check the SQL log using (SSMS) SQL Server Management Studios.
Resolution 1
*Warning: Irreparable database damage can occur. This procedure should only be performed by users familiar with SQL Server Management Studio. Databases should be backed up prior to performing this procedure.*
To fix this issue apply the following steps:
Resolution 2
For loss of credential, there will be a log with the message, "ionedsd cannot access the database due to password". In this case, please see this link for running a "reset accounts": PME Installer (se.com)
For loss of database access through other means use the following table to check the user mapping for ionedsd is correct:
To correct any issues please use the following flow
PME Web Applications gives error "Source Measurement list did not load" when trying to add sources or measurements onto Dashboards, Trends. However, Reports will work. The error message states:
There was an error attempting to load the Source Measurement list from the server. The application is usable, but no selections can be added or edited. If this problem persists contact your system administrator.
The System Log will show errors with the Software Data Processing Service targeting the Active Configuration Host:
Problem creating processor configurations for Rule 'Configuration Rule': System.ArgumentNullException: Value cannot be null. Parameter name: id at System.TimeZoneInfo.FindSystemTimeZoneById(String id) at SE.IONServices.DataProcessor.DataProcessorHostScheduleManager.ConfigurationShouldBeActiveNow(IProcessingConfiguration configuration) at SE.IONServices.DataProcessor.DataProcessorHost.ActivateConfiguration(IProcessingConfiguration configuration) at SE.IONServices.DataProcessor.ActiveConfigurationHost.ActivateRule(ProcessingRule rule)
or
Exception has been thrown by the target of an invocation. at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
When looking into the Web Application Diagnostics Log Event, you will find the following errors:
"Could not initialize data source driver. Initialization has failed 1365 time(s). The last exception was: Error initializing cross reference cache."
"A problem occurred on page 'https://emsprod01/SystemDataService/Hierarchy/2015-07/View/AllWithTopics': An error occurred while accessing a system resource or another service. Please try again later."
or
Provider Engine request did not complete successfully for RealTime Data (1 pairs) LogClientExtendedInformation: Framework.Common.ClientServices.ProviderRequestException: A problem occurred calling provider 0abdb5d9-adb1-4e59-a45c-28baabc6a08a with parameters [{"SessionId":"4de8e2b7-4b55-4efe-99cc-59069bf5dd14","RefreshIntervalSeconds":10,"Pairs":[{"Source":"24","Measurement":"1601","IsHierarchyPair":false,"UniqueId":"e6c77675-6fa2-4d6d-8bf0-038d730f1add"}]}]: Exception has been thrown by the target of an invocation.
at Framework.Common.ClientServices.ProviderEngineHelper`1.GetData(Object[] parameters, Type[] typeHints, Boolean useCache, ILogger logger)
at Applications.Web.RealTime.Data.RealtimeDataFetch.GetProviderData(RealTimeDataRequest dataRequest)
Product Line
Power Monitoring Expert 9.0
Power Monitoring Expert 9.1
Power Monitoring Expert 2021
Power Monitoring Expert 2022
Power Monitoring Expert 2023
Environment
Web Applications
Cause 1
This occurs if there are sources defined multiple times in the table ApplicaDataSourceBus.DataSourceDevice in the ApplicationModules database and results in the error above when the source/measurement list is loaded in Dashboards and Trends. This error becomes clarified in the [Application Modules].[dbo].[LogEvent]:
LogClientException: Framework.Common.Exceptions.ModuleException: Error initializing cross-reference cache. ---> Framework.Common.Exceptions.ModuleException: Data Source Device [1-354.E-SSZ2-354-01-002-BMSB-01-MAIN] is defined multiple times.
at DataSourceDrivers.CrossReferenceCache`2.HandleDataSourceDeviceUpdate(String deviceRepresentation, DsdDevice existingDevice)
at System.Collections.Concurrent.ConcurrentDictionary`2.AddOrUpdate(TKey key, TValue addValue, Func`3 updateValueFactory)
at DataSourceDrivers.CrossReferenceCache`2.AddDsdDeviceToMap(DsdDevice device)
at DataSourceDrivers.CrossReferenceCache`2.InitializeDeviceMappings(IEnumerable`1 devices)
at DataSourceDrivers.CrossReferenceCache`2.Initialize(DsdInitializationData initializationData)
at DataSourceDrivers.CrossReferenceCache`2..ctor(DataSourceIdentity identity, DsdInitializationData initializationData)
at DataSourceDrivers.DataSourceInitializer`2.GetCacheFromDataSourceBus()
--- End of inner exception stack trace ---
at DataSourceDrivers.DataSourceInitializer`2.GetCacheFromDataSourceBus()
at DataSourceDrivers.DataSourceInitializer`2.UpdateCache()
at DataSourceDrivers.DataSourceInitializer`2.PerformInitialization()
at DataSourceDrivers.DataSourceInitializer`2.Initialize(Int32 dataSourceId, IDataSourceConfiguration configuration, IDataSourceBus dataSourceBus)
at DataSourceDrivers.DataSourceDriverStateManager.Initialize(IDataSourceBus dataSourceBus, CancellationToken cancellationToken)
at DataSourceDrivers.DataSourceDriverStateManager.AttemptInitialize(CancellationToken cancellationToken)
at DataSourceDrivers.DataSourceDriverStateManager.AttemptInitializeTemplate(CancellationToken cancellationToken)
LogClient: DataSourceDrivers::DataSourceDrivers.DataSourceInitializationLogger::LogWarningMessage
Cause 2
The SQL server account has lost access to the database either due to a loss in user mapping or a loss in credentials. Check the SQL log using (SSMS) SQL Server Management Studios.
Resolution 1
*Warning: Irreparable database damage can occur. This procedure should only be performed by users familiar with SQL Server Management Studio. Databases should be backed up prior to performing this procedure.*
To fix this issue apply the following steps:
- Take a backup of the ApplicationModules database.
- Stop the ApplicationModules Windows services.
- In SQL Server Management Studio run the attached SQL script named 'ApplicationModules-DeleteAllDeviceMetadata.sql' in SQL Server Management Studio (SSMS).
- In SSMS, locate the table [ApplicationModules].[DataSourceBus].[DataSourceDevice]. Identify the fields that have duplicated DataSourceRepresentation and note down the associated DataSourceDeviceId.
- Execute the query below to delete duplicate devices in the database. In this example, DataSourceDeviceId 10351 is related to the previously mentioned source 1-354.E-SSZ2-354-01-002-BMSB-01-MAIN.
USE [ApplicationModules]
Delete from DataSourceBus.DataSourceDevice where DatasourcedeviceId = 10351
Delete from DataSourceBus.LogicalDevice where logicaldeviceId = 10351 - Start the ApplicationModules services
Resolution 2
For loss of credential, there will be a log with the message, "ionedsd cannot access the database due to password". In this case, please see this link for running a "reset accounts": PME Installer (se.com)
For loss of database access through other means use the following table to check the user mapping for ionedsd is correct:
To correct any issues please use the following flow
- Stop the ApplicationModules windows services
- Run an iisreset
- Start the ApplicationModules windows services