Report Scheduler

OCM Report Scheduler Reschedule Functionality - Error : "Index was out of range".

Issue description:

Issue from OCM (version & above) and report scheduler (version & above).

  1. Navigate to OCM report scheduler module in OCM.
  2. Click on the "Reschedule" button to execute the report scheduler.  (on-demand report scheduler execution).
  3. UI shows notification "Index was out of range. Must be non-negative and less than the size of the collection".


1.  Check the "SchedulerServerList" key in OCM web config.

2.  If the "serverid" of OCM report scheduler is 3, then 3 URL's should be present in the "SchedulerServerList" values.

Ex: Suppose 3 OCM report scheduler is deployed for a client. In OCM config, 3 API URL should be given.

<add key="SchedulerServerList" value="http://<IPAddress>:<Port>/OCMReportScheduler1/api/jobs/schedule, http://<IPAddress>:<Port>/OCMReportScheduler2/api/jobs/schedule, http://<IPAddress>:<Port>/OCMReportScheduler3/api/jobs/schedule"/>

In OCM "Report scheduler" module,  if one of the report has "serverid" as 2, then the rescheduling will be done by the 2nd scheduler API mentioned in the config key.

For the above key "http://<IPAddress>:<Port>/OCMReportScheduler2/api/jobs/schedule" will be used.

Note: Rescheduling is possible only for the "recurring" type of reports. If the report is in "sinned" status then it needs to resolved by checking audit logs mentioned table name here or logs

How to reschedule a report in OCM Report Scheuduler?


  • A report executing for particular interval of time can reschedule by updating record in ExportReportScheduler table.
  • Update InputEndDate, StatusDateTime and Frequency columns in the ExportReportScheduler table to reschedule.
  • Next execution will be from configured InputEndDate (as start date) to InputEndDate + Frequency (as end date).
  • Update StatusDateTime with old date (StatusDateTime  - frequency), as current date will be verified with StatusDateTime.

For example:

  • As below screenshot for AgentLoginLogoutReport, execution completed till 20190531 000000 (InputEndDate)

  • Now, this report to be till current date, frequency difference is 89 days i.e., current date (20190828 000000) - InputEndDate(20190531 000000)
  • Update FrequencyInMinutes column with 128160 (89 days)
  • Update StatusDateTime column to any old date (current date - 89 days), say 2019-05-17 00:00:00.000
  • As we have to continue from previous InputEndDate(20190531 000000), no need to update InputEndDate column
  • update ExportReportScheduler
    set FrequencyInMinutes = 128160, STATUSDATETIME = '2019-05-17 00:00:00.000'
    where ReportName ='AgentLoginLogoutReport'

  • Logs

  • Data will update for the frequency set as below

What is "DLL file not found" error in OCM Report Scheduler?

Resolution :

  • A new report in OCM Report Scheduler must be configured accordingly  as below
    • A record in ExportReportScheduler table in database fro report
    • DLL config key in service as below
<add key="AgentInteractionReportDLL" value="E:\Products\OCM Report Scheduler Service\Source\OCM.ReportScheduler\Libs\AgentInteractionReport.dll" />
    • DLL in a specific path mentioned in the above key.
  • If specific report DLL not found in a specific path, service tries to invoke this gives the error as "DLL file not found."
  • Hence always make sure report DLL deployment done correctly in the specific service path