Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Work Tasks

Technical Scenarios and Features

  • Last UpdatedJun 06, 2024
  • 3 minute read

Due to "OutOfMemoryException" Workflow Engine service has stopped. Administrator wants it to be automatically started.

AVEVA Work Tasks architecture uses plug-in model. Any Custom activity, Com-object, or SOA activity can be plugged in as part of the workflow. Due to high memory usage by these activities, Workflow Engine is throwing OutOfMemoryException. Workflow Engine stops processing the workflows and hence workflows are stocked in piles in the queue. During such a condition, the Administrator has to restart the services. This can be automated by service monitoring.

In the production environment, service monitoring is enabled. One of the features of service monitoring is, restarting the service if it is stopped.

If the Workflow Engine service is stopped, Communication services, and Task Scheduler are also stopped. Then Communication services, Task Scheduler, and Workflow Engine are started in the given order. The SendAlertEmail is enabled and an email is sent.

The Maintenance restart and WarningMemory restart time are configured with an identical time for the Workflow Engine service.

At the specified time, the memory reaches a Warning memory limit. The order of execution of logic is Service specific monitoring logic followed by Maintenance monitoring, CriticalMemory monitoring, and Warning memory monitoring.

For the Workflow Engine, the Service specific monitoring is executed first. Then the Maintenance restart is executed and hence the service is restarted. But, the WarningMemory restart will not happen as the memory has decreased below the specified limit.

Client service had failed due to OutOfMemoryException

Suppose the client service has failed due to OutOfMemoryException. This should not stop monitoring the remaining services. It has to be restarted automatically.

Client service installer has the recovery option set, so that it recovers automatically when there are failures.

Workflows are pending in queue for long time. Not getting processed by Workflow Engine even though there is no OutOfMemoryException and memory is available for the process.

Client service monitors the Workflow queues SWExecute. All workflows which need to be executed by Workflow Engine will be stacked in this table.

Client service will check the LastUpdatedDateTime for all “executing” workflow tasks. If the status has not changed for a long time, say 10 minutes, then it means that the Workflow Engine is not able to release the existing threads and hence not able to continue with the new workflow tasks. During such a condition, the client service will restart the Workflow Engine.

If all workflows in thread queue are taking more than 10 minutes, the client service will restart Workflow Engine. If all the worklfows continue to hang, then the client service will restart again. This behavior will continue until the workflows complete execution within 10 minutes.

Service monitoring in Development environment

In the development environment, the user will be verifying the workflows, services, adding the custom forms, and actions. The user may not want to restart the services over a high memory usage in development environment.

To avoid monitoring of the services in development environment, the application will have the configuration setting ServiceMonitoringEnabled="false".

Only if the setting ServiceMonitoringEnabled="true", the monitoring feature is enabled. For any other values, it is disabled.

Some of the configuration settings are empty for the Workflow Engine

If the Monitor service attribute is not present or the value is not present, then the default section value is taken.

If CriticalMemory node is not present or MemoryLimitInMB attribute is not present, then the default setting is considered. If the MemoryLimitInMB has an empty value, then the default setting is considered. If the MemoryLimitInMB=0, then the CriticalMemory monitoring will not process.

The same logic is applicable to the WarningMemory section. If the attribute (or node) is not found or its value is empty, then the default settings will be considered. If its MemoryLimitInMB=0, then the WarningMemory monitoring will not process.

In This Topic
TitleResults for “How to create a CRG?”Also Available in