Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdKarel Vermeiren Laatst gewijzigd meer dan 10 jaar geleden
1
Kennissessie instrumentatie-packages dbms_application_info logger Rob van Wijk•26 mei 2011
2
Het wat en waarom van instrumentatie Code larderen met alle informatie die je ooit nodig mocht hebben om problemen op te kunnen lossen. Code die je aan en uit kunt zetten. Standaard aan in de ontwikkelomgeving en uit in alle andere omgevingen. Bouw het vanaf dag 1 in, zodat je nooit meer hoeft te debuggen en zodat de kleine overhead ingebakken kosten zijn. Het heeft een enorm korte terugverdientijd Het moet gemakkelijk in het gebruik zijn
3
Package dbms_application_info PROCEDURE set_module (module_name in VARCHAR2, action_name in VARCHAR2); PROCEDURE set_action (action_name IN VARCHAR2); PROCEDURE set_client_info (client_info IN VARCHAR2); PROCEDURE read_module (module_name OUT VARCHAR2, action_name OUT VARCHAR2); PROCEDURE read_client_info (client_info OUT VARCHAR2); PROCEDURE set_session_longops ( rindexIN OUT BINARY_INTEGER, snoIN OUT BINARY_INTEGER, op_nameIN VARCHAR2, targetIN BINARY_INTEGER, contextIN BINARY_INTEGER, sofarIN NUMBER, totalworkIN NUMBER, target_descIN VARCHAR2, unitsIN VARCHAR2 );
4
Package dbms_application_info Stelt DBA’s en anderen in staat om te kunnen zien waar sessies, SQL en gebruik van systeembronnen vandaan komt. Module, Action en Client_Info zichtbaar in X$KSUSEX V$SESSION en V$SQLAREA SQL*Trace-bestanden Monitoring-pakketten, bijvoorbeeld i3 Behoeft geen aparte installatie: DBMSAPIN.SQL wordt gedraaid als standaard onderdeel van een database installatie. ip1.sql
5
Package dbms_application_info Ja, is leuk hoor, maar daar wordt mijn programma onnodig traag van... ip2.sql
6
dbms_application_info.set_session_longops zet een rij in V$SESSION_LONGOPS Voor database-operaties die langer dan 6 seconden duren Voorbeelden: backup, uitvoeren van zoekvragen, statistieken vergaren Belangrijke kolommen: SOFAR en TOTALWORK Nu dus ook zelf te vullen ip3.sql
7
Logger https://www.samplecode.oracle.com/sf/projects/logger/ https://www.samplecode.oracle.com/sf/projects/logger/ Van Tyler Muth en Christopher Beck Ondersteunde database-versies: XE, 10.2, 11.1 en 11.2 “What is Logger? This is a PL/SQL logging and debugging framework. The goal of logger is to be as simple as possible to install and use. The primary use cases for this utility include: Debugging: It's often difficult to track down the source of an error without some form of debugging instrumentation. This is particularly true in multi-tier, stateless architectures such as Application Express. Error Logging: While most experts agree that it's important not to mask errors, it's also nice to have a persistent record of them. Timing: Logger has a very simple timing framework built-in that makes it easy to benchmark sections of code. Instrumentation: Because it's easy to "turn-off" logger globally with virtually no performance impact, it's easy to get in the habit of leaving debug calls in production code. Now, when something does go wrong, you simply flip the switch and logger is enabled making it much quicker to debug errors.”
8
Logger: de basis Tabel LOGGER_LOGS Drie views daar bovenop voor extra gebruikersgemak: •LOGGER_LOGS_5_MIN •LOGGER_LOGS_60_MIN •LOGGER_LOGS_TERSE Package LOGGER met de volgende logprocedures •LOG_PERMANENT •LOG_ERROR •LOG_INFORMATION •LOG_WARNING •LOG ip4.sql
9
Logger-niveaus Mogelijke waarden voor LOGGER_LEVEL: •OFF0 •PERMANENT1 •ERROR2 •WARNING4 •INFORMATION8 •DEBUG16 •TIMING32 •SYS_CONTEXT64 •APEX128
10
Package logger Ok, dbms_application_info is snel, maar in productie wil je toch niet al die aanroepen van logger als ze 99,9% van de tijd toch uit staan... ip5.sql
11
Logger: instellingen Tabel LOGGER_PREFS 8 rijen die je als systeemparameters kunt zien: PREF_NAME PREF_VALUE ------------------------------ LEVEL DEBUG PURGE_MIN_LEVEL DEBUG PROTECT_ADMIN_PROCS TRUE LOGGER_VERSION 1.3.0 INSTALL_SCHEMA LOGGER INCLUDE_CALL_STACK TRUE PURGE_AFTER_DAYS 7 GLOBAL_CONTEXT_NAME LOGGER_LOGCTX Eén tabel voor alle sessies ip6.sql
12
Logger: extra’s flashback APEX CGI environment User environment variabelen purge job overhead: NO_OP optie
13
13 Bedankt voor jullie aandacht Voor meer informatie: www.ciber.nl
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.