User Tools

Site Tools


fertigungsmodulperformance

Fertigungsmodul Performance

Problem Description

Find out what is the root of the problems with “Fertigungsmodul”.

  • - Ask Torsten which problems they have
  • - How is it possible to see these problems?
  • JProfiler is under “C:\Program Files\jprofiler13”
  • Menu
    • Fertigung
      • Leitstand
        • Fertigungsauftrag
          • Netzplan (Über Menü? Kontextmenü?)
            • Endprodukt
            • Zwischenprodukte
  • Produktionsplanung
  • Beispiel-Matnum:
  • .740 (und dann Pfeil-nach-unten drücken)
    • FB-Nr. 00126472
  • 1216
  • Groovy Klassen:
    • SvBoPrdNet
    • SvBoPrdNetImpl
      • setBoPrdNetPrdDocQuantityAndReloadSuc()
    • SvBoPrdNetImplBase
    • FrBoPrdNet
      • handleElementDataChanged()
        • :946 ⇒ busObj = svBoPrdNet.setBoPrdNetPrdDocQuantityAndReloadSuc(busObj, boPrdNetPrdDoc, (EFCQuantity) oldval, (EFCQuantity) newval)
  • EFCThreadUtil.doLater()
  • → wird zu oft aufgerufen?
  • auf die Methode wird gewartet
  • Torsten meint so soll es auch sein, da es in einem AWT-Thread passiert/passieren soll

Found facts

  • JDBC calls take relatively long time:
    • the first 10 calls need the most time
      • ca. 8 seconds with my scenario on the local DB srv07
      • ca. 3 minutes on the Zimmer Test-DB, if I move 5-7 entries on the screen “Leitstand Bereich VP”

Profilers

TOP-Selects

select 1

  • Ursache
    • MdMatMrpBrrRepositoryImpl.getBoFromDb()
      • getForObj()
        • …

Misc

  • to debug html page “graph.html” in Chrome:
    • add the manual call of setData()
      • in graph.html add the line to the bottom of JavaScript code
        • setData(…)
          • where … is the JSON code copied from GraphView.fillGraph() during debugging
    • find out the URL of “graph.html”
      • see GraphView.getGraphURL()
    • call this URL in Chrome
  • Maybe we can do something better if we write a better version of DcBomDocCompactRepositoryImpl.getMatnumMdBomDoc() which uses own “select” statement to select only one record from DB, instead of:
    ...
    db = getDao(company, bomdockey, bomdocnum)
    
    if (db != null) {
      return new EFCMatNum(db.bommatnum)
    }
    ...
fertigungsmodulperformance.txt · Last modified: by kalaschnikow