web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

Batch server topology question

(0) ShareShare
ReportReport
Posted on by

Hi there,

There's a lot of documentation and blogs about how to configure a Batch Server, how to dedicate it on his own AOS, how to write X++ classes for batch jobs using good parallelism design with SysOperation Framework, and so on.

But there's not much on the web about when to set a new (or several new) dedicated AOS and how the infrastructure topology should be set up for the benefit of maximizing the use of the involved machines in regard of CPUs and other resources.

So, if you've been facing bottlenecks while using batch jobs, and further decided to change your AX infrastructure, please feel free to share here with us what changes did you do to "make AX great again" !! It'd be so much appreciated. Thanks in advance! :)

*This post is locked for comments

I have the same question (0)
  • Suggested answer
    Vilmos Kintera Profile Picture
    46,149 on at

    If you have very heavy tasks which are running in parallel, you might want to set up dedicated batch servers. My previous workplace ran a manufacturing operations where they have exchanged asynchronous AIF messages in a document queue, which as we know executes in a batch. The company was also working in different time zones, so when the EU operation wanted to run their evening bulk sales invoicing batch, the US operation around lunchtime notices that the machinery are not getting the instructions on time. For invoicing you could define how many invoices do you want to handle per batch thread, and how many threads do you want total (if I remember right the second part was our customization). Also they executed Master Planning which is another heavy operation, with parallel threads.

    Now if these operations have any overlap, or the overall batch threads are consumed, many Waiting tasks will be parked. What we had to do is set up batches in a way where we made calculations that if many of the regular batches kick in (Change based/Due date alerts, E-mail distribution, Workflow, AIF queue processing, etc.) make sure there are always a couple of spare thread for something newly created to be able to execute, such as an ad-hoc SSRS report executing in batch.

    We ended up with using 2 batch servers with 16 threads each, and set up helpers for MRP and Invoices to respect other batch jobs at their peak numbers. The big batches ran on their own server, and the other batches could use both instances where there was a spare thread available.

  • Community Member Profile Picture
    on at

    Thank you so much for sharing!

    Someone else want to step up and share? Please go ahead :)

  • Community Member Profile Picture
    on at

    Bump! I need your feedback people, please! This would be so much appreciated!

  • Tim Schofield Profile Picture
    on at

    I've worked mostly on small sites - 20 to 80 users. There we sometime see one AOS, but most typically two - one servicing users, the other dedicated to batch tasks. We had one site using the Enterprise portal, they had 3 AOS: Users; Batch; and EP. So I typically see one dedicated batch AOS - I haven't worked on any systems big enough to need more than one.

  • Community Member Profile Picture
    on at

    Thank you so much for your feedback! Always interesting to see what's happening as well on small sites. This forces you to put things in perspective.

    Actually we have more than 50 clients (school boards) each with its own AOS, which is flagged as well as Batch Server (the default). Obviously this is not a good approach. Moreover, those AOS run on several VMs in a Datacenter (OVH). There are in fact from 3 to 4 AOS on each VM. So the problem we're facing is when they start using a batchjob concurrently, they impact one each other on the performance aspect. That's why I'm asking for your own experiences...

  • Verified answer
    Math Dax Profile Picture
    on at

    Salut Gino,

    I never recommend installing multiple AOS services on the same server for Production. As you said, the AOS service will be competing for the same resources. Although you can configure CPU affinity, the memory will be shared among all services. I am assuming you already knew that.

    Regarding your question for batch servers topology, the number of users in the environment is not relevant, I have seen small companies running expensive batch jobs and big implementations will almost nothing in batch. The most important thing is to understand what your batch jobs are doing in the system. If they spend most of the time in SQL, adding/having a dedicated batch server may not be the solution. If you have a CPU contention because your batch jobs spend most of the time processing/calculating, having a dedicated batch will help.

    However, by experience I always recommend at least one AOS server for batch processing unless the customer is willing to run its batch jobs during off-business hours only. In the latter, I configure the batch server schedule to ensure the batch jobs do not run during business hour.

  • Community Member Profile Picture
    on at

    Merci so much Mathieu! :)

    This is good information to know. In our case, the concerned batch job is run sychronously, and need to be executed as fast as possible (well, maybe not that fast...) because it's triggered from a Form and the end user is litterally waiting (with progress bars...) for the results to appear.

    My head is spinning, but I can slowly see a solution emerging... ;)

  • Mea_ Profile Picture
    60,284 on at

    Hey Gino Deschênes,

    It's not about topology but did you try reliable asynchronous mode in SysOperationFramework ? In this case you don't need to sit and wait, you can go and do other tasks in AX but under the hood it will use batch anyway.

  • Community Member Profile Picture
    on at

    Hi ievgen,

    Yeah we know about reliable asynchronous mode and stuff in SysOperationFramework. This peticular functionality we have here requires to be synchronous. It's a "must have" in that case. But thanks! :)

  • Community Member Profile Picture
    on at

    Thanks to everyone for your time! :)

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Martin Dráb Profile Picture

Martin Dráb 4 Most Valuable Professional

#1
Priya_K Profile Picture

Priya_K 4

#3
MyDynamicsNAV Profile Picture

MyDynamicsNAV 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans