3 Comments for this entry

  • Allen

    Great write-up, but I have a question. If I want to review the MRP data on a per-thread basis, how do I do that? I’m looking in the ReqProcessItemTrace table and only see a handful of thread IDs, which is leading me to believe my MRP is not processing in parallel at all. I would assume each helper gets its own thread ID and would be logged as such?

    • denisfed

      Hi Alen

      You can try to look onto ReqProcessItemList table. It holds the list of planning chunks. Every chunk, which is processed or being processed has threadiId field filled in. Try to execute query “Select threadId,count(*) from reqProcessItemList where reqProcessItemList.processId= group by threadId”. If you see that chunks are allocated between threads more or less evenly, then MRP is running Okey. If allocation is uneven, or you see just one thread, it probably means that either some threads crushing during execution.

      Also, check how many batch tasks you have for MRP batch job during MRP. If some of the tasks are ended or terminated with error, it means that you are facing some kind of problem. Also, try to check Log for every helper task in the batch screen…


  • Petr Sehnal

    Denis, Excellent post, thanks.

    Allen, is the problem you mention that you can see only one thread in ReqProcessItemTable even if multiple threads were used?

    I experienced this problem and found out there was a bug in standard appl – AX2009 RU5 (5.0.1500.2985). Due to bug in passing parameters to helpers they never write into the ReqProcessItemTrace table.

    Fixing this is easy.
    In the ReqCalc class just add the parameter isItemTraceEnabled into the CurrentThreadList macro.

    Best Regards
    Petr Sehnal

Leave a Reply