1 Tuning Your Application Rob Marshall Principal Solutions Consultant, Progress Software Session 131.

Презентация:



Advertisements
Похожие презентации
Using Actional with OpenEdge The Zen of Business Transaction Assurance David Cleary Principal Software Engineer – Progress Software Session 116.
Advertisements

Structured Error Handling in the ABL Sarah Marshall QA Architect, OpenEdge Session 128.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Managing Your Network Environment Managing Cisco Devices.
How to quickly identify and resolve application bottlenecks Johan Forssblad, G4 IT AB Managing Director / Co founder.
1 Watch Your Production Environment ( while at Exchange ) using OpenEdge Management Libor Laubacher Principal TSE, Progress Software Session 133.
© 2006 Cisco Systems, Inc. All rights reserved.ISCW v Cisco IOS Threat Defense Features Configuring Cisco IOS IPS.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Module Summary The Cisco Discovery Protocol is an information-gathering tool used by network.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v Using CSA Analysis Generating Application Deployment Reports.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Route Selection Using Attributes Setting BGP Local Preferences.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Operating and Configuring Cisco IOS Devices Starting a Switch.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v BGP Overview Monitoring and Troubleshooting BGP.
AVVID Troubleshooting Tools © 2004 Cisco Systems, Inc. All rights reserved. Using Database Tools IPTT v
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Managing Your Network Environment Managing Router Startup and Configuration.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Route Selection Using Policy Controls Employing AS-Path Filters.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Route Selection Using Policy Controls Implementing Changes in BGP Policy.
DB-12 - Pick An Index, Any Index… Michael Lonski Allegro Consultants, LTD.
© 2009 Avaya Inc. All rights reserved.1 Chapter Nine, Voic Pro in SCN Module Three – Backup Voic Pro.
© 2009 Avaya Inc. All rights reserved.1 Chapter Nine, Voic Pro in SCN Module Four – Distributed Voic Pro.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Operating and Configuring Cisco IOS Devices Configuring a Router.
© 2006 Cisco Systems, Inc. All rights reserved. MPLS v Complex MPLS VPNs Introducing Central Services VPNs.
Транксрипт:

1 Tuning Your Application Rob Marshall Principal Solutions Consultant, Progress Software Session 131

© 2009 Progress Software Corporation. All rights reserved. Agenda Overview of a OERA application AppServer Code Testing Using the VSTs Using Profiler Interpreting the Results 2

© 2009 Progress Software Corporation. All rights reserved. Application Overview 3

© 2009 Progress Software Corporation. All rights reserved. Application Overview The OERA Basics Separate the UI from the Business Logic Separate the Data Access from the Business Logic 4

© 2009 Progress Software Corporation. All rights reserved. AppServer Application Overview 5 Data

© 2009 Progress Software Corporation. All rights reserved. AppServer Code Testing 6 Why Test the code????

© 2009 Progress Software Corporation. All rights reserved. AppServer Code Testing Verify it is as efficient as it can be Run it locally to get profiler information Capture VST information Verify the output 7

© 2009 Progress Software Corporation. All rights reserved. AppServer Code Testing IF vAppServer THEN DO: /* Connect to AppServer */ CREATE SERVER hAppSrv. vRet = hAppSrv:CONNECT ("-sessionModel Session-free - AppService " + cASName + " -H " + cASIP + " -S 5162","adm-gym",""). /* If error, run the routine locally and inform the developer */ IF NOT vRet THEN DO: MESSAGE "Failed to Connect to AppServer - Running Locally VIEW-AS ALERT-BOX. RUN common/commonprocs.p PERSISTENT SET CommonProcs. SESSION:ADD-SUPER-PROCEDURE(hCommonProcs). END. ELSE 8

© 2009 Progress Software Corporation. All rights reserved. AppServer Code Testing 9 IF vAppServer AND VALID-HANDLE(hAppSrv) THEN DO: /* We are running on the AppServer, and we are connected to it */ RUN "salesorder/SI/Get.p" ON SERVER hAppSrv (INPUT ?, /* Session ID */ INPUT ?, /* RowID */ INPUT 0, /* ProdID */ INPUT 0, /* Rev */ OUTPUT TABLE-HANDLE phttError, OUTPUT DATASET DSProposal). END. ELSE DO: /* We are running locally */

© 2009 Progress Software Corporation. All rights reserved. Using VSTs 10 Ask not what you can do for your VSTs, but what your VSTs can do for you….. So What is a VST…..

© 2009 Progress Software Corporation. All rights reserved. Using VSTs Background Check Index Range Size (-indexrangesize) Table Range Size (-tablerangesize) 11

© 2009 Progress Software Corporation. All rights reserved. Using VSTs Major VSTs to review IndexStat – Shows index usage, look for unused indexes or inefficient index usage in your tests TableStat – Shows table usage, look for excessive reads or updates Gotchas…. These VSTs are from the start of the DB server, not your specific session 12

© 2009 Progress Software Corporation. All rights reserved. Using VSTs 13

© 2009 Progress Software Corporation. All rights reserved. Using VSTs Your VSTs: _UserIndexStat – Shows index usage for this session _UserTableStat – Shows table usage for this session _UserIO – shows overall DB access for the session _MyConnection – Is the current connection you are using 14

© 2009 Progress Software Corporation. All rights reserved. Tools 15 VSTs are nice, BUT…….. What other tools are available?

© 2009 Progress Software Corporation. All rights reserved. Tools The Profiler Utility OpenEdge Management Compile Listing Compile XREF Many third party tools (PEG, OEHive, PSDN, etc) 16

© 2009 Progress Software Corporation. All rights reserved. Using Profiler Profiler is a tool, not a automatic fix utility It can help identify areas of performance concern Profiler is officially unsupported but many folks in the Global Progress community extend it and it is a very useful tool 17

© 2009 Progress Software Corporation. All rights reserved. Using Profiler To get the best results, you need source code in your path Profiler does not count time used to enter data, only execution time 18

© 2009 Progress Software Corporation. All rights reserved. Using Profiler Look for sections of code with Long execution times Many iterations Called often 19

© 2009 Progress Software Corporation. All rights reserved. Using Profiler 20 To Use In-Line Arguments to turn on Profiler: IF vProfiler THEN DO: /* * Start Profiler using in-line directives */ PROFILER:ENABLED= TRUE. PROFILER:LISTINGS= TRUE. PROFILER:COVERAGE= TRUE. PROFILER:DESCRIPTION= cProfDesc. PROFILER:FILE-NAME= cProfName. PROFILER:DIRECTORY= cProfDir. PROFILER:PROFILING= TRUE. END.

© 2009 Progress Software Corporation. All rights reserved. Using Profiler 21 To Use In-Line Arguments to turn off Profiler: IF vProfiler THEN DO: /* * Turn off profiling using in-line directives */ PROFILER:PROFILING = FALSE. PROFILER:WRITE-DATA(). PROFILER:ENABLED = FALSE. END.

© 2009 Progress Software Corporation. All rights reserved. Using Profiler 22 Profiler as a client start-up: In your normal client session startup add: -zprofile ProfileConfigFile The Profile Config File contains: -OUTFILE Filename -LISTINGS [Directory] -DESCRIBE Description

© 2009 Progress Software Corporation. All rights reserved. Interpreting the Results 23 Now that we have captured some data, what next?

© 2009 Progress Software Corporation. All rights reserved. Interpreting the Results 24 You may need to edit your.out file….. 6 "DaypartLookup vehicle/bevehicle.p" "" 0 2 "Vehicle/SI/VehicleLookup.p /tmp/list/dbg_VehicleLookup_6ca05444" "ClearMessages common/commonprocs.p" "" 0 3 "ServiceAdapter common/commonprocs.p" "" 0 5 "vehicle/bevehicle.p" /tmp/list/dbg_bevehicle_6da05444" 28781

© 2009 Progress Software Corporation. All rights reserved. Interpreting the Results 25

© 2009 Progress Software Corporation. All rights reserved. Interpreting the Results 26

© 2009 Progress Software Corporation. All rights reserved. Interpreting the Results 27

© 2009 Progress Software Corporation. All rights reserved. Interpreting the Results 28

© 2009 Progress Software Corporation. All rights reserved. In Summary 29 You can use simple tools (including OpenEdge Management) The performance review process can be easily incorporated into any development process Ensuring performance during the development process saves effort later

Tuning Your Application 30 Rob Marshall Principal Solutions Consultant, Progress Software Session 131