microsoft-dynamicsx++dynamics-ax-2012

Dynamics AX 2012 Formdatasource::executeQuery calls a lot more methods on specific remote servers


All the AX clients are accessed through RDS.

We received a ticket a few weeks ago that a certain application had bad performance. We were looking in to it but could not reproduce the problem. After some testing around, it seemed that the problem only occurs on 2 specific remote desktops, and not on the others.

Then we started tracing the application on both servers with the Tracing cockpit and I noticed that on the slow-server, the executeQuery calls a lot more of the same methods as the fast-server, in particular, SysQueryRun::next and QueryBuildDataSource::findRange

So I decided to setup a very simple testform with the same basic logic as the application with issues, and this seems reproducible, albeit a lot less calls than the actual application.

The logic used on the form is very simple. In the active of the header-formdatasource, we call the detail-formdatasource executeQuery and apply the filters to the detail-table.

On the fast-server:

Trace-faster-server

On the slow-server:

Trace-slower-server

What could be the reason this happens? It certainly has an impact.

I tried the following things:


Solution

  • Check that all servers and clients have the same Kernel builds by going to Help>About.

    Alternatively, you can check the user log (\Menus\SystemAdministration\Inquiries\Users\User log), and on the general tab it shows the different build #'s for the logins. I typically personalize that form and move it to the grid. That way I can just scroll up/down and look for client mismatches.