IWR API preview

void SetLicense(string LicenseFile, string Key)
void Run(string XML, string ID) // Workflows start
void Cancel(string ID)
void Ping(bool Report)

delegate void IOCRServiceEvents_DoneEventHandler(string ID, int StartError, System.Array StartErrors, System.Array RuntimeErrors, System.Array RuntimeErrorDescriptions, System.Array ResponseXMLFiles)
delegate void IOCRServiceEvents_PingEventHandler()
  • int TimeOut { get; set; } // JobXML execution heartbeat timeout. It is a base value to calculate the real timeout. Basically, it is a heartbeat period between two progress steps in the workflow engine. In addition, this period will be increased automatically when the input document has multiple pages. The period could be much longer when there are 500 pages, to avoid false hang intervention. Some algorithms tend not to send progress frequently when there are many pages in the document.

  • int CPUUsage { get; set; } // Limit the number of CPU core usage by workers (Affinity). You can leave free cores for CPU-power demanding OCRWorkers. Default: no limitation.

  • int UserCount { get; set; } // Number of CSDK worker processes ( OCRServer.exe ) enabled. Default: Number of virtual CPUs.

  • int MemoryLimit { get; set; } // Maximum memory the CSDK process (OCRServer) can use. OCRServer is terminated if its memory allocation goes over this limit. Default: 3GB.

  • OCRServiceLib.PRIORITY PRIORITY { get; set; } // OCRServer process priority. Default: Idle.

  • int PendingUsers { get; } // Actual WorkflowXML queue length. WorkflowXMLs in progress.

  • int Lives { get; set; } // Number of workflows to be done between two CSDKWorker process restarts. Default: 10.

  • bool Log { get; set; } // Turn the log on / off.

  • int RpcTimeOut { get; set; } // Out-proc COM API time out.

Using the combination of CPUUsage, UserCount, PRIORITY properties you have all controls over the CPU and memory resource allocation of the IWR. The application can scale the IWR up and down.