Citrix Monitor Server Event ID 2006 on DDC Server Every Hour

Citrix Monitor Server Event ID 2006 on DDC Server Every Hour

book

Article ID: CTX228522

calendar_today

Updated On:

Description

Citrix Monitor Server Event ID 2006 is outputted on DDC server every hour
Application.csv

The Data Persistence Sink detected error while persisting data from provider 'BrokerEventProvider' in pipeline 'Broker Operational Event Pipeline'. error: System.ArgumentException: An item with the same key has already been added.

   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)

   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey](IEnumerable`1 source, Func`2 keySelector)
   at Citrix.Monitor.Repository.Helpers.DataUploadHelper.ProcessMachineSync(IList`1 machineSyncs, DateTime pollDate)
   at Citrix.Monitor.Repository.DataUploadRepository.Process(XenDesktopCollectedData data)
   at Citrix.Monitor.Pipeline.Sinks.DataPersistenceSink.ProcessPayload(IDataContainer payload)
   at Citrix.Monitor.Pipeline.Sinks.DataPersistenceSink.ProcessDataWorker()"
2017/09/12 14:01:04,Citrix Monitor Service,2006,,The Data Persistance Sink detected error while persisting data from provider 'BrokerEventProvider' in pipeline 'Broker Operational Event Pipeline'.error: System.NullReferenceException: Object reference not set to an instance of an object.
   at Citrix.Monitor.Repository.Helpers.DataUploadHelper.ProcessSessionSync(IList`1 sessionSyncs, DateTime pollDate)
   at Citrix.Monitor.Repository.DataUploadRepository.Process(XenDesktopCollectedData data)
   at Citrix.Monitor.Pipeline.Sinks.DataPersistenceSink.ProcessPayload(IDataContainer payload)
   at Citrix.Monitor.Pipeline.Sinks.DataPersistenceSink.ProcessDataWorker()"

Resolution

The message basically means that Citrix Monitor Service is preventing duplicate values from being added to database . This is expected behavior. There are following reasons for the event being outputted.

1 Citrix Monitor Service runs SQL transaction to synchronize difference data between DDC and monitor database, but didn't get the SQL transaction return code.

OR

2 Citrix Monitor Service runs SQL transaction to synchronize data by a mistake even if no difference between DDC and monitor database.

OR

3 Some VDA or ICA session info record's DDL is changed by user operation but record primary key is not changed.

Normally, there would be no data corruption or data lost even if this event is outputted. Hence, error can be considered as a harmless error and can be ignored.

If you have further concern on this message, download the Monitor_Director_Services.ctl and load it using CDFcontrol.exe to collect CDF Trace.
-----
# asnp citrix*
# Set-MonitorConfiguration -DetailedSqlOutputEnabled 1
-----

Issue/Introduction

Citrix monitor service Event ID 2006 which is SyncPollTimeHours will synchronize data between ddc and monitor DB when there is some changes monitor data.