Managing Task Limits per Batch Group in Microsoft Dynamics 365 for Finance and Operations

Effective task management is essential in the field of enterprise resource planning. Administrators could designate particular batch servers to a batch group with more flexibility prior to Microsoft Dynamics 365 for Finance and Operations (D365FO) introducing “Priority Based Scheduling”. This capability was not merely about enhancing capacity but also about controlling and limiting it.

The Problem of Overutilization

Recently, our team encountered a significant challenge. We had 98 tasks, all marked with a “normal” scheduling priority, that were able to execute simultaneously. Given that more than 98 tasks were available, all of them entered the executing state at the same time. This situation led to a 100% Database Transaction Unit utilization over a prolonged period, which is far from ideal. Such a high utilization rate can strain the system, leading to performance issues and potentially impacting other operations.

In the past, this kind of issue could have been mitigated. The older batch group mechanism allowed us to limit the number of batch servers assigned to a batch group, thereby controlling the number of parallel tasks. Unfortunately, with the shift to “Priority Based Scheduling,” this direct control seemed to have been lost, leading to the problems we recently faced.

Discovery of Batch Concurrency Control

With the release of version 10.0.38 PU63, a new feature called “Batch Concurrency Control” caught my attention. This feature reintroduces the ability to limit or throttle the number of parallel tasks in a specific batch group. Had we been aware of this feature earlier, and had the users selected the correct batch group in their request forms, we could have limited the number of parallel tasks to a manageable number, such as 10. This would have prevented the processing from adversely affecting other users and maintained overall system performance.

Activating and Utilizing the Feature

After activating the “Batch Concurrency Control” feature, you will notice a new field in the batch group settings. This field is crucial for managing task concurrency effectively.

Batch Concurrency Control settings in Microsoft Dynamics 365

Understanding the Help Text

The maximum number of tasks that can run in parallel at a time for Batch Jobs in this Batch Group. This setting should be set to zero if concurrency control is not required. To completely stop all batch jobs in this Batch Group, set the value to -1. It’s important to remember that using this feature on batch jobs with more than 5000 concurrent tasks that are prepared to run could have a negative effect on batch scheduling performance.

This explanation is vital. Setting the value to zero means no concurrency control, while setting it to -1 halts all batch jobs in the group. However, caution is advised against using this feature for batch jobs with more than 5000 concurrent tasks, as it could degrade the performance of batch scheduling.

Implementing the Feature in Our Workflow

In our operations, we now actively use this feature to manage the number of available tasks per batch group. This approach mirrors our previous strategy, where we selected only a few batch servers for a specific batch group. By doing so, we can effectively throttle the tasks and ensure a balanced load across the system.

Conclusion

The introduction of “Batch Concurrency Control” in Microsoft Dynamics 365 for Finance and Operations has provided us with a much-needed tool to manage and control task execution within batch groups. By setting appropriate limits, we can prevent system overloads, maintain performance, and ensure a smoother operation.

We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at [email protected] 


Share Story :

Secured By miniOrange