AX is Very Slow

Hi all,

one of my client facing the bellow problem.

One of the user upload JV in single file in Axapta, the other users are unable to make the entries in Axapta, it is showing as “Not Responding

Please help me any one

 

Thanks!!!

  • It sounds more like blocking than slowness, doesn't it?
  • In reply to Martin Dráb:

    Hi martin,

    I gone through the below steps:-

    1. I have removed the cache data.
    2. restarted the AOS.
    3. Generate the full CIL.

    But, still facing the same issue

    Please suggest me martin. what could be the better way.

  • In reply to AKumar:

    That's not surprising, I wouldn't expect neither of them to fix the problem. Instead, you must analyze the problem. When you understand what's going on, you can fix it.

    As I suggested before, I think you should think about whether it's a slowness (as the the title suggests) or the user is blocking others (as the description suggests). The way of debugging will be different.

    If it's the later case, start with finding which resource is locked. Assuming that it's something in database, the easiest way doing it directly at database level (e.g. Finding blocking/locking queries in MS SQL).

  • In reply to Martin Dráb:

    Hi Martin,
    We are using AX 2009 and have problem while posting the sales invoice/production order that system is get hang (i.e. Not Responding).
    If we see in sql server's activity monitor(we have SQL server 2008 R2), it seems user is blocking others (some time this user is in head block)and respond time is very high of that blocked user. It frequently happens from this month.
    There is weekly indexing schedule (every Saturday night @ 12 am). One more thing is now we have only 74 GB free space on the server. And now our total database size is 350 GB, so is there any performance issue of that much database size on AX?

    Any suggestion pls to come out from this issue.


    Thanks,
  • In reply to Amol:

    Why do you ask me whether you have a performance issue if you already know that the problem is caused by blocking? People aren't blocked because the system is slow, they're waiting for a locked resource in database? Shouldn't you address this problem instead of playing with compilation, disk space and such unrelated things?
    As I mentioned before, you should start with finding which resource is locked and by which query. Then you can try redesigning it to avoid locking completely or holding the long for shorter time.
  • In reply to Martin Dráb:

    Okay Martin, Thank you for the reply.
  • In reply to Martin Dráb:

    Hi Martin,

    I found that a Table "TaxDocumentTransitRelation" is blocking at SQL Level, while opening That table getting below error.

    Please find the attached screen short.

     

    Please give me suggestion!!

     

    Thanks 

  • In reply to AKumar:

    The error message isn't related to performance; I think the table is simply set with Visible = No. Focus on what's blocked and why.
  • In reply to Martin Dráb:

    Hi Martin,

    When we are searching in google we found the below link. Please check it once whether its correct solution or not guide me. 

    http://msdynamicserp.blogspot.com/2017/07/cannot-delete-record-in.html#.WoPgkqiWbIV

    Cannot delete a record in TaxDocumentTransitRelation (TaxDocumentTransitRelation). Deadlock, where one or more users have simultaneyously locked whole table or part of it.

    Replace the below code from existing one.

     

    public void deleteByTransitDocumentType(TransitDocumentType_IN _documentType)

    {
        TransitDocumentTransactionRelationMap_IN   relationMap;
        Common                                     transitDocTable;
        if (!_documentType)
        {
            return;
        }
        relationMap = this.getTransactionRelationTable(_documentType.RefTableId);
        transitDocTable = new DictTable(_documentType.RefTableId).makeRecord();
        ttsBegin;
        //delete_from relationMap
       while select relationMap
            where relationMap.TransitDocumentType == _documentType.RecId
            notExists join transitDocTable
                where relationMap.TransitDocumentRecId == transitDocTable.RecId
        {
            relationmap.selectForUpdate (true);
            relationMap.delete();

        }
        ttsCommit;

  • In reply to AKumar:

    Unfortunately I have no information about which queries were blocking each other and what was the original code, so I can't comment on the suggested change.
  • In reply to Martin Dráb:

    Hi martin,

    Issue has been completed..

    Thanks for giving reply..
Related
Recommended