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

AVEVA™ Work Tasks

Activity Concurrency Limit

  • Last UpdatedJun 10, 2024
  • 2 minute read

Activity concurrency limit defines the feature to control the number of Activity Instances* or Activity Type which can run in parallel. Two tables are added to Farms database for this configuration. It is mandatory to restart the engine for these configuration changes to take effect.

SKActivityTypeConcurrency table: The columns available in the table are ApplicationActivityType and Concurrency Limit. Two levels of concurrency can be set using this configuration.

  • Application and Activity Type level: You can control the number of activity types which will run in parallel at the same time for a repository for a step type.
    Example: Within an application there can be only 10 script activity which will run in parallel.

  • Activity Type level: You can control the number of activity types which will run in parallel at the same time.
    Example: Across all repositories there can be only 10 script activity which will run in parallel.

SKActivityNameConcurrency table: The columns available in the table are Application, Workflow, ActivityName, and ConcurrencyLimit. One level of concurrency can be set using this configuration.

Application, Workflow and ActivityName level: You can control the number of activity names (instances) which will run parallelly at the same time for a repository within a workflow.
Example: Within an application and workflow there can be only 10 MoveCopyFolder activity which will run in parallel.

The properties which can be configured in the farm database for Workflow Engine service is:

  • maxruntimethreadsforconcurrentexecution: Number of threads which will be used to queue up the activities which timeouts the waiting periods to execute. The timeout activities will have Pending ('P') status for the activity in SWExecutionDetails table or BAM report.

  • concurrentactivityexecutionwaittime: The wait time for an activity to start executing in synchronous mode. It is useful only when concurrency limits are set in farm configuration database for SKActivityTypeConcurrency or SKActivityNameConcurrency tables.

    <properties>
    <property key="loadbalanced"><![CDATA[False]]></property>
    <property key="loadbalanceserverport"><![CDATA[8853]]></property>
    <property key="loadbalanceclientport"><![CDATA[8859]]></property>
    <property key="port"><![CDATA[8855]]></property>
    <property key="maxenginethreads"><![CDATA[100]]></property>
    <property key="maxruntimethreadsforconcurrentexecution"><![CDATA[20]]></property>

    <property key="concurrentactivityexecutionwaittime"><![CDATA[15000]]></property>

    <property key="lastupdateddatetime"><![CDATA[]]></property>
    <property key="serviceexe"><![CDATA[WFEngine.NET2.exe]]></property>
    <property key="displayname"><![CDATA[Skelta - Workflow Engine]]></property>

    </properties>

     

    Note: Based on the type of workflows, load and scenario, it is advisable to configure these parameters during load testing to reach an optimum number and performance. Activity Instance* is a single step which is in executing/running stage. For example, there are 2 MoveCopy steps named MoveCopy1 and MoveCopy 2 placed in parallel with in a workflow. After the workflow is triggered, it would be one instance of MoveCopy1 activity and one instance of MoveCopy2 activity running at the same time. If the workflow is triggered twice it would be two instance of MoveCopy1 activity and two instance of MoveCopy2 activity running at the same time.

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