DONE02: Where Did You Go Wrong? Diagnostics and Troubleshooting in OpenEdge Kris Murphy Senior Solution Engineer.

Slides:



Advertisements
Similar presentations
6 Copyright © 2005, Oracle. All rights reserved. Building Applications with Oracle JDeveloper 10g.
Advertisements

DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
1.
IcePro Source Code Management Source code analysis Runtime analysis Application deployment Source code generation Multi sites Click ! IcePro.
Copyright  Oracle Corporation, All rights reserved. 1 Creating an Application: The AppBuilder for Java IDE.
Strength. Strategy. Stability. The Application Profiler.
DEV-2: Getting Started with OpenEdge® Architect – Part I
Improving your OpenEdge® Development Productivity David Lund Sr. Training Program Manager, Progress.
Utilizing the GDB debugger to analyze programs Background and application.
Debugging What can debuggers do? Run programs Make the program stops on specified places or on specified conditions Give information about current variables’
DEV-13: You've Got a Problem, Here’s How to Find It
Access 2007 Product Review. With its improved interface and interactive design capabilities that do not require deep database knowledge, Microsoft Office.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 11: Monitoring Server Performance.
The IDE (Integrated Development Environment) provides a DEBUGGER for locating and correcting errors in program logic (logic errors not syntax errors) The.
V0.01 © 2009 Research In Motion Limited Introduction to Java Application Development for the BlackBerry Smartphone Trainer name Date.
Interpret Application Specifications
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
AGENDA Tools used in SQL Server 2000 Graphical BOL Enterprise Manager Service Manager CLI Query Analyzer OSQL BCP.
05 | Configuration and Deployment Richard Currey | Senior Technical Trainer–New Horizons United George Squillace | Senior Technical Trainer–New Horizons.
DEV-14: Understanding and Programming for the AppServer™
Performance testing of Progress Appservers and a plug-in for Jmeter
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Connect with life Praveen Srvatsa Director | AsthraSoft Consulting Microsoft Regional Director, Bangalore Microsoft MVP, ASP.NET.
What’s new in Progress Developer Studio for OpenEdge 11.0?
Microsoft ® Official Course Monitoring and Troubleshooting Custom SharePoint Solutions SharePoint Practice Microsoft SharePoint 2013.
Web Development Challenges and How They are Solved in ps:eScript Matt Verrinder Progress Software UK Internet & Integration Technologies.
OPS-17: Utilizing Firewalls - In the Reign of Fire
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering.
DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer.
WaveMaker Visual AJAX Studio 4.0 Training Troubleshooting.
DONE-10: Adminserver Survival Tips Brian Bowman Product Manager, Data Management Group.
© 2009 Progress Software Corporation 1 Click to Edit Master Subtitle Style Overview of OpenEdge® GUI for.NET Release 10.2A Jarmo Nieminen Senior Technical.
DEV-2: Making OpenEdge ® Architect Work For You David Lund Product Readiness.
Peter van Dam Dynamic WebClient Programming. Peter van Dam Progress fanatic since 1985 Version CHUI-GUI-Batch-WebSpeed-WebClient Founder.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
DEV339 Best Practices for Debugging Visual Studio.NET Applications Keith Pleas Architect, Guided Design
DEV-09: User Authentication in an OpenEdge™ 10.1 Distributed Computing Environment Michael Jacobs Development Architect.
DONE-08 Sizing and Performance Tuning N-Tier Applications Mike Furgal Performance Manager Progress Software
OPS-15: What was Happening with My Database, AppServer ™, OS... Yesterday, Last Month, Last Year? Libor LaubacherRuanne Cluer Principal Tech Support Engineer.
INT-5: Integrate over the Web with OpenEdge® Web Services
DEV-8: OpenEdge® Architect – Extensibility & Third Party Integration Sunil Belgaonkar Principal Software Engineer Architect Phillip Magnay.
Reset and Recycle IIS Reset Application Pool Management Error Codes New HTTP Sub-status codes Custom/Detailed Errors Tracing in IIS7 and.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 11: Monitoring Server Performance.
COMP-1: OpenEdge® Management Overview and Demo Principal Technical Support Engineer Cyril E. Gleiman.
Catch Me If You Can P ractical Structured Error Handling Peter van Dam.
CF Pest Control By Shlomy Gantz President, BlueBrick Inc. Presented by Sandra Clark
Debugging and Profiling With some help from Software Carpentry resources.
SOA-02: Sonic SOA Products Overview Luis Maldonado Technical Product Manager Sonic Software.
DB-16 : JTA Transactions in the RDBMS, What's Going on Down There? Deb Walz Principal Software Engineer.
INNOV-10 Progress® Event Engine™ Technical Overview Prashant Thumma Principal Software Engineer.
This is the main tracing and diagnostics presentation. Very important that this be practical and useful information. IT Pro audience is very.
© BASIS International Ltd. All rights reserved. U.S. Sales: Worldwide Sales:
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
INSERT BOOK COVER 1Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall. Exploring Getting Started with VBA for Microsoft Office 2010 by.
Msdevcon.ru#msdevcon. ИЗ ПЕРВЫХ РУК: ДИАГНОСТИКА ПРИЛОЖЕНИЙ С ПОМОЩЮ ИНСТРУМЕНТОВ VISUAL STUDIO 2012 MAXIM GOLDIN Senior Developer, Microsoft.
Presented by Vishy Grandhi.  Lesson 1: AX Overview  Lesson 2: Role based security  Lesson 3: Monitoring  Troubleshooting.
Object-Oriented Application Development Using VB.NET 1 Chapter 2 The Visual Studio.NET Development Environment.
A2: Making OpenEdge ® Architect Work For You Susan Houniet Senior Solution Consultant.
SQL Query Analyzer. Graphical tool that allows you to:  Create queries and other SQL scripts and execute them against SQL Server databases. (Query window)
Copyright Ó Oracle Corporation, All rights reserved Debugging Triggers.
15 Copyright © 2004, Oracle. All rights reserved. Debugging Triggers.
DEV-22: You’ve got a problem, here’s how to find it
Data Virtualization Tutorial: Introduction to SQL Script
DEV-25: You've Got a Problem, Here’s How to Find It
Proper Care and Feeding of an Index
DEBUGGING JAVA PROGRAMS USING ECLIPSE DEBUGGER
The Ins and Outs of Performance Profiling and Debugging
SOA-09: Conducting Business with OpenEdge® and SonicMQ®
DB-12 - Pick An Index, Any Index…
Presentation transcript:

DONE02: Where Did You Go Wrong? Diagnostics and Troubleshooting in OpenEdge Kris Murphy Senior Solution Engineer

2© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Agenda n Diagnostic & Troubleshooting Tools Overview n Common Troubleshooting Situations –Memory Leak –Performance Issue –Error in AppServer™ code n Planned for OpenEdge™10.1A

3© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Diagnostic & Troubleshooting Tools n GUI Debugger n Logging Infrastructure n LogRead n Profiler n Pro*Spy Plus

4© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? GUI Debugger n Modern Java™ graphical interface n Initial Technology Preview 9.1D SP 05 n First official release OpenEdge™ 10 n Supports local and remote debugging n Supported on Windows and all versions of UNIX that support Java

5© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? For Your Application Safety… n Client –Start → Programs → OpenEdge → Proenv n AppServer™ Debugging is NOT enabled by default

6© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? GUI Debugger n AppBuilder or Procedure Editor –Compile → Debug –Can step into AppServer code from Client session DEFINE VARIABLE debug AS LOGICAL. debug = DEBUGGER:INITIATE(). debug = DEBUGGER:SET-BREAK(“dordbug.p",6). n Programmatically –DEBUGGER system handle methods –Initiate debugging in AppServer or WebSpeed ® code

7© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Main Debugger Window Toolbar Right Click - Dataviews View\Hide Panes Organized by type Source Code 4GL Procedure Stack Variables Watches Menubar

8© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Source Code Pane n Shows code n Breakpoints –Set –Remove –Enable/Disable n Arrow current line of execution

9© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? 4GL Procedure Stack Pane

10© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Variables Pane n Variables n Parameters n Buffers n Temp Tables n D ataSets

11© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Watches Pane n Type variable directly in watches pane n Keeps track of variables, buffer fields, attributes, etc.

12© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? More Variable Detail - Dataview n Additional information n Debug Dataview

13© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Quick Dataviews n Data List of SYSTEM HANDLES

14© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Traversing NEXT-SIBLING

15© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Conditional Breakpoints

16© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Watchpoints

17© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Diagnostic & Troubleshooting Tools n GUI Debugger n Logging Infrastructure n LogRead n Profiler n Pro*Spy Plus

18© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Logging Infrastructure n We had logging in Progress® V9. We just made it better in OpenEdge 10! –Easier to get rid of “noise” in the logs –Unified format –Control Log Size –New log entry types n Logging Infrastructure –Log entry types –Logging levels –Log size threshold –LOG-MANAGER

19© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Log Entry Types 4GL Interpreter n 4GLTrace n DB.Connects n DynObjects.* n QryInfo n SAX n ProEvents.* - logentrytypes DynObjects.DB,QryInfo Client n 4GLMessages Other Components n AS.Plumbing n AS.Default n MsgrTrace n NameServer

20© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Logging Levels n 0 – None n 1 – Errors n 2 – Basic n 3 – Verbose n 4 – Extended -logginglevel 2 -logentrytypes DynObjects.UI:3,qryInfo

21© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Log File Has Size Threshold n Startup Parameters –Log Threshold –Keep Log Files n Progress Explorer -numlogfiles -logthreshold

22© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? LOG-MANAGER n Runtime access n Setting log file name LOG-MANAGER:LOGFILE-NAME = “Mylog.log”. n Setting logging level LOG-MANAGER:LOGGING-LEVEL = 2. n Starting LOG-MANAGER:LOG-ENTRY-TYPES = “4GLTrace”. n Stopping LOG-MANAGER:LOGGING-LEVEL = 0.

23© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Diagnostic & Troubleshooting Tools n GUI Debugger n Logging Infrastructure n LogRead n Profiler n Pro*Spy Plus

24© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? LogRead n GUI utility to view, filter, sort, merge and translate Progress log files n Not officially supported –On-line Help n Available on PSDN

25© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Loading a Log File n Log file format n Date format n Time adjustment n Promsgs translation n Date Range Filter

26© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? LogRead Log View Utilities Queries

27© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Sample

28© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Analyze the Merge

29© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? LogRead Planned Enhancement n Users can write their own: –Utilities to help analyze log files –Handlers to load other types of log files n Microsoft IIS log file

30© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Diagnostic & Troubleshooting Tools n GUI Debugger n Logging Infrastructure n LogRead n Profiler n Pro*Spy Plus

31© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Profiler n Provides profile of procedure execution n Analyze where most time is spent n Not officially supported n Available on PSDN

32© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Profiler

33© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Profiler

34© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Diagnostic & Troubleshooting Tools n GUI Debugger n Logging Infrastructure n LogRead n Profiler n Pro*Spy Plus

35© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Pro*Spy Plus n Debugging tool used to trace the execution of a 4GL program n Can be turned on and off at the beginning or during execution n Results of tracing, which include all procedures, triggers, and functions appear in a browse widget

36© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Pro*Spy Plus – Example

37© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Pro*Spy Plus – Example

38© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Pro*Spy Plus – Example

39© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Agenda n Diagnostic & Troubleshooting Tools Overview n Common Troubleshooting Situations –Memory Leak –Performance Issue –Error in AppServer™ code n Planned for OpenEdge 10.1A

40© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Memory Leak n Memory is allocated and never freed n Application may slow down, and it may affect the system as a whole n Dynamic Objects, Memptrs n Tools for diagnosing –Logging n -LogEntryType DynObjects.* n LogRead –Debugger n Dynamic Object Tracker

41© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Memory Leak - Logging LOG-MANAGER:LOGFILE-NAME = “memleak.log”. LOG-MANAGER:LOG-ENTRY-TYPES = “DynObjects.*”. LOG-MANAGER:LOGGING-LEVEL = 3. CREATE TEMP-TABLE tth. bufHdl = BUFFER customer:HANDLE. tth:CREATE-LIKE(bufHdl). CREATE TEMP-TABLE tth2. bufhdl2 = BUFFER order:HANDLE. tth2:CREATE-LIKE(bufhdl2). CREATE QUERY qh. DELETE OBJECT tth. DELETE OBJECT qh. LOG-MANAGER:LOGFILE-NAME = “”. LOG-MANAGER:LOGFILE-NAME = “memleak.log”. LOG-MANAGER:LOG-ENTRY-TYPES = “DynObjects.*”. LOG-MANAGER:LOGGING-LEVEL = 3. CREATE TEMP-TABLE tth. bufHdl = BUFFER customer:HANDLE. tth:CREATE-LIKE(bufHdl). CREATE TEMP-TABLE tth2. bufhdl2 = BUFFER order:HANDLE. tth2:CREATE-LIKE(bufhdl2). CREATE QUERY qh. DELETE OBJECT tth. DELETE OBJECT qh. LOG-MANAGER:LOGFILE-NAME = “”. LOG-MANAGER:LOGFILE-NAME = “memleak.log”. LOG-MANAGER:LOG-ENTRY-TYPES = “DynObjects.*”. LOG-MANAGER:LOGGING-LEVEL = 3. CREATE TEMP-TABLE tth. bufHdl = BUFFER customer:HANDLE. tth:CREATE-LIKE(bufHdl). CREATE TEMP-TABLE tth2. bufhdl2 = BUFFER order:HANDLE. tth2:CREATE-LIKE(bufhdl2). CREATE QUERY qh. DELETE OBJECT tth. DELETE OBJECT qh. LOG-MANAGER:LOGFILE-NAME = “”.

42© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Memory Leak - Logging

43© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Memory Leak - LogRead Utilities FindDynObjLeak

44© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Memory Leak - Dynamic Object Tracking n Diagnostics Monitor Dynamic Objects

45© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Dynamic Object Tracking /* ttdelay.p */ CREATE TEMP-TABLE ttHdl1. bufHdl = BUFFER customer:HANDLE. ttHdl1:CREATE-LIKE(bufHdl). ttHdl1:TEMP-TABLE-PREPARE("ttcust"). RUN dyn (TABLE-HANDLE ttHdl1, OUTPUT TABLE-HANDLE ttHdl2). …

46© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Dynamic Object Tracking /* ttdelay.p Continued*/ Procedure dyn: DEFINE INPUT PARAM TABLE-HANDLE inhdl. DEFINE OUTPUT PARAM TABLE-HANDLE outHdl. … CREATE TEMP-TABLE outHdl. … outHdl:TEMP-TABLE- PREPARE(“ttorder”). DELETE OBJECT inhdl. END.

47© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? If you forgot to cleanup /* ttdelay.p Continued*/ DELETE OBJECT ttHdl1. DELETE OBJECT ttHdl2. RETURN. What did we forget to delete? /* ttdelay.p Continued*/ Procedure dyn: DEFINE INPUT PARAM TABLE-HANDLE inhdl. DEFINE OUTPUT PARAM TABLE-HANDLE outHdl. … CREATE TEMP-TABLE outHdl. … outHdl:TEMP-TABLE- PREPARE(“ttorder”). DELETE OBJECT inhdl. DELETE OBJECT outhdl. END.

48© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? If you forgot to cleanup n Dynamic Object tracking allows you to quickly identify your failure to delete objects

49© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Agenda n Diagnostic & Troubleshooting Tools Overview n Common Troubleshooting Situations –Memory Leak –Performance Issue –Error in AppServer™ code n Planned for OpenEdge 10.1A

50© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Performance Issues in the 4GL n Application is slow, queries take a long time to run n Inefficient index usage n Diagnostic Tools –INDEX-INFORMATION Attribute –Query-Info Logging –Profiler

51© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Performance – INDEX-INFORMATION Attribute qh:QUERY-PREPARE("FOR EACH customer WHERE name MATCHES ‘A*’”). qh:QUERY-OPEN. message qh:INDEX-INFORMATION(1) view-as alert-box. qh2:QUERY-PREPARE("FOR EACH item WHERE name BEGINS ‘A’”). qh2:QUERY-OPEN. message qh2:INDEX-INFORMATION(1) view-as alert-box.

52© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Performance – Query-Info Logging LOG-MANAGER:LOGFILE-NAME = “Query.log”. LOG-MANAGER:LOG-ENTRY-TYPES = “QryInfo:3”. RUN runQuery(INPUT "for each customer where name begins 'A'"). RUN runQuery(INPUT "for each customer where name matches 'A*'"). PROCEDURE runQuery: … hqry:QUERY-PREPARE(cQry). hqry:QUERY-OPEN(). … hqry:QUERY-CLOSE(). … END. LOG-MANAGER:LOGGING-LEVEL=0.

53© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Performance – Query-Info Logging – Query Plan n Query-Plan: how we extract information for the query including: –Query Type, Prepare String, Sorted, Scrolling

54© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Performance – Query-Info Logging Query Statistics n Query Statistics: information on the query as it extracts data from the database including: –Times prepared (Dynamic only) –Time to prepare (Dynamic only) –Database blocks accessed –Records sent from server n Useful n Failed

55© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Performance – Query-Info Logging Query Statistics Name BEGINS ‘A’ Name MATCHES ‘A*’

56© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Performance - Profiler

57© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Agenda n Diagnostic & Troubleshooting Tools Overview n Common Troubleshooting Situations –Memory Leak –Performance Issue –Error in AppServer code n Planned for OpenEdge 10.1A

58© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Error in AppServer code n Attachable Debugger –Server in another office / building –No monitor attached –Easier to debug from where you are

59© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Attachable Debugger n Start Attachable Debugger –Start → Programs → OpenEdge → Debugger n Ready the Client process for debugging –-debugReady port-number –proDebugConfig –Attachable Debugger

60© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Attachable Debugger

61© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Break on Error Message n From within the debugger: Edit Breakpoints

62© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Attachable Debugger

63© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Agenda n Diagnostic & Troubleshooting Tools Overview n Common Troubleshooting Situations –Memory Leak –Performance Issue –Remote Debugging n Planned for OpenEdge 10.1A

64© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? D I S C L A I M E R Coming in OpenEdge™ 10.1A n This talk includes information about potential future products and/or product enhancements. n What I am going to say reflects our current thinking, but the information contained herein is preliminary and subject to change. Any future products we ultimately deliver may be materially different from what is described here. D I S C L A I M E R

65© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Planned for OpenEdge 10.1A n User Logging n 4GL Tracing: Log “return” from procedure n Query-Info Logging Enhancements

66© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? In Summary n Diagnostic Tools Overview n Common Debugging & Troubleshooting Situations n To Learn More: –Debugging & Troubleshooting Guide –PSDN –On-line Help

67© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Questions?

68© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong? Thank you for your time!

69© 2005 Progress Software Corporation DONE 02: Where Did You Go Wrong?