Ich war's nicht! Fehler & Ursachensuche in APEX Peter Raganitsch FOEX GmbH Österreich Schlüsselworte APEX, Fehler, Debug, Logging, Nachforschung.

Ähnliche Dokumente
Fehlersuche in Apex ein praktischer Einstieg

Debugging in APEX. Christina Funke Apps Associates GmbH Dortmund

DOAG München Layout und dynamische Elemente für APEX Anwendungen

APEX Datenverwaltung Wo sind die Daten gerade?

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

APEX und Drucken Die Schöne und das Biest! Seite 1 von 61

Validiert das RTF-Template auf syntaktische Fehler und gibt Hinweis auf Zeilennummer in der RTF-Datei. der eingebetteten XML-Daten

Logging mit Log4J AID 074 DE

C/C++ Debugging mit CDT unter Eclipse

APEX und Drucken! - Die Schöne und das Biest!

Entwicklungswerkzeuge & - methoden

APEX 5. Mit 6 Klicks kostenfrei zur APEX Webapplikation. Robotron Datenbank-Software GmbH Schulungszentrum Heilbronner Straße Dresden

Miele Extranet. Systemvoraussetzungen und wichtige Einstellungen. Miele Extranet - Systemvoraussetzungen und wichtige Einstellungen.

APEX OOS TOOLS & HELFER

Anleitung zur Fleet & Servicemanagement Evatic Schnittstelle

APEX Office Print - Einfach Druck machen! Daniel Hochleitner Freelance APEX Developer, FOEX GmbH

Anleitung zum Umgang:

<Insert Picture Here> Forms Survival Kit Fehlersuche in WebForms-Applikationen

PL/SQL-Code mit APEX generieren

Mehrsprachigkeit in APEX- Anwendungen

Installationsanleitung für das Shopware Heidelpay Payment Standard Modul (Frontend Modul) Installationsanleitung

... Trigger - Fehlersuche (Debugging)

DOAG Regionaltreffen Berlin/Brandenburg

Neue Welten: Externe Daten mit APEX nutzen

Dienstleistungsportal der deutschen Bürgschaftsbanken

Einrichten des IIS für DataFlex WebApp Server. Einrichten des IIS (Internet Information Server) für DataFlex WebApp Server

SSL-Inspection mit Content-Filter. ZyXEL USG Firewall-Serie ab Firmware Version Knowledge Base KB-3506 Juni 2014.

Benutzeranmeldung e-geodata Austria Portal

Ein Blick unter die Motorhaube von Oracle APEX. Patrick Wolf, Sphinx IT Consulting DOAG Konferenz Nürnberg,

Node.js der Alleskönner. Kai Donato MT AG Ratingen

Voraussetzung für die Nutzung des KOCH-Portals ist ein aktueller Webbrowser mit installiertem Adobe Flash Player Plugin.

Release Notes SAPERION Version 7.1 SP 5

Pronto! Webmail-Oberfläche. Empfohlener Browser: Google Chrome. Kontakt:

Die neue LMS Plattform

Mit ApEx 3.1 eine Website mit integriertem CMS entwickeln. Enrico Mischorr merlin.zwo InfoDesign GmbH & Co. KG

Für das iphone. Funktionsleitfaden

Lernen vom Page Designer. Auf den Spuren von Jules Verne

Reporting Lösungen für APEX wähle Deine Waffen weise

APEX und JavaScript. Beispiele, Pattern und Best Practices. Hendrik Gossens Consultant OPITZ CONSULTING GmbH. Nürnberg,

Application Express Wo ist der Fehler? Debugging im APEX. Copyright Apps Associates LLC. 1

Browsereinstellungen für moneycheck24 in Explorer unter Windows

Installation und Benutzung. LangCorr ApS Erritsoegaardsvej 11 DK 7000 Fredericia Denmark

Anleitung wie man das Wichtige Windows Update selber durchführt

DOAG HC ApEx Workshop. OPITZ CONSULTING GmbH 2009 Seite 1

SAP Open Catalog Interface WyRu Online-Shop

Benutzerdokumentation. ChangePlorer

Logging und Debugging. Gerd Volberg OPITZ CONSULTING Deutschland GmbH

Wie sichert man APEX-Anwendungen gegen schädliche Manipulationen und unerwünschte Zugriffe ab?

app.telemetry Statistiken zu Suchanfragen ad-hoc Reports und Statistik Dashboard Charts Version 2017 Summer Release

FILAKS.PLUS Release

Ein Reporting Service mit APEX und BI Publisher

Outlook-Synchronisation

Agile Softwareentwicklung mit APEX (4.0)

Installation von 3M KODIP-SF mit Fallerfassung Version Dezember 2016

Benutzeranmeldung e-geodata Austria Portal

Eclipse Tutorial.doc

T. Csizmadia, DEVWARE GmbH 1.2

APEX Worst Prac-ces. Die schlimmsten Fehler DOAG Jahreskonferenz 2014 Peter Raganitsch

CPACS Entwicklertreffen, Aachen,

NetUSE-SSH-Keymanager 2.12

Der Informationsgehalt des Ringspeichers wird dabei durch den Log-Level des Root-Loggers bestimmt (in diesem Fall der Level info ).

NetMan Desktop Manager Quickstart-Guide

Web Browser Einstellungen für die Nutzung des VisecaOne Web Portal (one.viseca.ch)

Technical Information

Forms 12c und der Oracle SB

Fuzzy-Suche in Application Express

Inhalte in Kurse einfügen. Um Inhalte in Kurse einzufügen, logge dich in Moodle ein und betrete deinen Kurs.

Inhalt. 1. Admin Bereich Anmeldung Assessment Übersicht Zertifikat und Beraterfeedback-Dokument...

Oracle Forms und APEX

Vorteile einer Tool gestützten Modernisierung von Forms und Reports

Mail: Web: juergen-schuster-it.de

APEX URLs Suchmaschienen- und Benutzerfreundlich

Netzwerk Projektor Bedienungsanleitung

RTG Online Reporting. Anleitung. RTG Trading Solutions

PayPalPlus Magento 2 Benutzerhandbuch

Daniela Reiner. Stuttgart,

Schnelleinstieg Online-Backup

Handbuch ECDL 2003 Basic Modul 7 Abschnitt 1: Information Internet Explorer starten, Eingabe einer URL und Navigation im Internet

Analysen, Konzepte & Anwendungsentwicklung für EDV. Gerhild Aselmeyer, Dipl.Math. Integration von drei Oracle Anwendungen. APEX Forms MapViewer

desk.modul : ABX-Lokalisierung


Anleitung zur Konfiguration des CL-Webservers

Docusnap X Docusnap Web Version 2.0. Docusnap Web installieren und anpassen

Er ermöglicht die Suche nach allen verfügbaren Informationen, die in diesem Feld eingetragen werden können (z. B. Kontonummer, Artikelname usw.).

Oracle APEX 3.2. Peter Raganitsch. Einführung und neue Features

Diagramme - Next Generation

Inhaltsverzeichnis. Version Seite 1 von 7

Die APEX APIs Schatzkiste. November 2015 DOAG 2015 Ulrike Brenner

p^db=`oj===pìééçêíáåñçêã~íáçå=

Google Maps API Keys für den Filialfinder erstellen und einfügen - v0.4

T:\Dokumentationen\Asseco_BERIT\Schulung\BERIT_LIDS7_Basiskurs\Impo rt_export\beritde_lt_do_ _lids7.basisschulung_import_export.

GuU-XenApp-WebAccess. Inhaltsverzeichnis

Swissmem ebooks ebook Funktionen Software Version 4.x (PC)

JetViewSoft Versions Update von V1.40 auf V1.50

Konfigurationsanleitung bintec Hotspot Lösung GUI

Best Practices und Tools für Upgrades aus der Sicht der Applikation

Web Browser Einstellungen für die Nutzung des VisecaOne Web Portal (one.viseca.ch)

Hilfe, ich verstehe meine APEX Seite nicht mehr! DOAG Development Konferenz, Düsseldorf

Transkript:

Ich war's nicht! Fehler & Ursachensuche in APEX Peter Raganitsch FOEX GmbH Österreich Schlüsselworte APEX, Fehler, Debug, Logging, Nachforschung. Einleitung Wenn mal was nicht so klappt wie man sich das vorstellt, dann ist guter Rat oft teuer. Das muss aber nicht sein. Mit ein paar einfachen Bordmitteln kann man schnell herausfinden, was so alles im Hintergrund passiert und warum das Ding nicht das tut, was man gerne möchte. Debugging Spricht man von Fehlern in Computersoftware bzw. dem Auffinden derselben, dann spricht man typischerweise von Debugging. Dazu erstmal eine Definition des Begriffes Debugging aus Wikipedia: Debugging is the process of finding and resolving bugs or defects that prevent correct operation of computer software or a system. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge in another. Quelle: Wikipedia: https://en.wikipedia.org/wiki/debugging Diese allgemeine Beschreibung wird im Falle von Oracle Application Express zur bitteren Wahrheit, denn Oracle APEX ist ein zusammengesetztes System. Die Summe der Teile Oft wird APEX nur als System gesehen, in der Fehlersuche wird dann oft deutlich, dass dieses System aus vielen einzelnen Teilen besteht. Als wichtige Teile können folgende genannt werden: Datenbank APEX Netzwerk Browser Damit wird deutlich sichtbar, dass eine tiefgreifende Fehlersuche unbedingt alle Teil-Systeme abdecken muss. Wenn der Fehler in einem Teil-System lokalisiert wurde, können die anderen erstmal beruhigt ausser Acht gelassen werden. Das soll natürlich nicht heissen, dass dort keine anderen Fehler versteckt sein können. Manche Fehlertypen treten erst bei einer bestimmten Kombination der einzelnen Systeme auf, soll heissen erst wenn beispielsweise Datenbank 12c auf APEX 5.0 mit einem langsamen Netzwerk auf einen Internet Explorer 11 trifft.

Vorgehensweise bei der Fehlersuche Aufgrund der Vielzahl an Teilsystemen, aus denen sich Oracle APEX zusammensetzt, ist es erstmal wichtig herauszufinden WO der Fehler auftritt. Dazu kann man sich am Top-Down-Ansatz orientieren und beginnt ganz oben bei APEX zu suchen und hantelt sich durch die verschiedenen Systeme wie Browser und Netzwerk bis zur Datenbank vor. Neben dem WO ist auch noch das WAS und WER interessant. Denn ist der Fehler erstmal in einem bestimmten Bereich lokalisiert, gilt es weiters herauszufinden WAS die Ursache des Fehlers ist. Ein Fehler der in der Oberfläche (WO) auftritt, kann durchaus in einem anderen Bereich ausgelöst worden sein, Beispielsweise durch eine ungünstige Verschachtelung von Regionen (WAS). Die Frage nach dem WER bedeutet nicht nur, dass man versucht einen Sündenbock zu finden. Viel wichtiger ist es den zuständigen Personen die Auswirkung von WO und WAS zu erläutern. Wie bei vielen Dingen im Leben ist auch bei der Fehlersuche die Vorbereitung sehr wichtig. Hier bedeutet es, möglichst viele Informationen in der Hand zu haben, wenn eine Fehlersituation auftritt. Dazu kann man sich der Instrumentalisierung schon in der Entwicklungsphase bedienen. Los geht die Fehlersuche Als allgemein gültiges Kochrezept lässt sich die Fehlersuche immer mit Aktivierung des APEX Debug beginnen. Dazu klicken sie in der APEX Developer Toolbar auf Debug oder fügen in der URL an der 5. Position YES ein. Der zweite Schritt ist sodann die Aktivierung der Javascript Konsole ihres Browsers. Dort werden allfällige Javascript Fehler und Debug-Informationen von Dynamic Actions angezeigt. APEX Debug Oracle Application Express bietet als Einstieg zur Fehlersuche eine sogenannte Debug Funktion an. Streng genommen handelt es sich dabei um ein klassisches Logging, wie man es auch von anderen Tools, wie Beispielsweise log4j kennt. APEX Debug unterstützt (seit Version 4.2) mehrere verschiedene Log Levels: Level Beschreibung 1 Error Kritische Fehler 2 - Warning Weniger kritische Fehler 4 Info Default Level, wenn Debug ohne Angabe von Levels aktiviert wird. Zeigt alle normalen Debug-Informationen 5 App Enter Applikation: Meldungen zum Aufruf von Prozeduren 6 App Trace Applikation: Andere Meldungen innerhalb von aufgerufenen Prozeduren 8 Engine Enter APEX Engine: Meldungen zum Aufruf von internen Prozeduren 9 Engine Trace APEX Engine: Andere interne Meldungen Siehe dazu auch die Erklärung in der APEX Dokumentation, APIs, APEX Debug: https://docs.oracle.com/cd/e59726_01/doc.50/e39149/apex_debug.htm#aeapi29184 Bevor APEX Debug aktiviert werden kann, muss eine von diesen beiden Voraussetzungen erfüllt sein: 1. In der Applikations-Definition ist Debugging erlaubt 2. Oder es handelt sich um eine Entwickler-Session (erkennbar durch den Developer Toolbar)

Ist eine dieser Voraussetzungen erfüllt, so kann APEX Debug über die URL im Browser aktiviert werden. Dazu wird an der 5. Position innerhalb der URL entweder YES oder LEVEL1..LEVEL9 eingegeben. Beispiel: Normale URL einer ausgeführent Anwendung: http://apex.oracle.com/ords/f?p=171:1:3457588657568::::: Mit aktiviertem Debug: http://apex.oracle.com/ords/f?p=171:1:3457588657568::level6::: Handelt es sich um eine Entwickler-Session, so kann der Debug zusätzlich über die Developer- Toolbar aktiviert werden, allerdings wird dort standardmäßig nur YES (entspricht LEVEL4) gesetzt. Will man einen anderen Level aktivieren, so ist ein Eingriff in die URL ohnehin nötig. Oracle APEX stellt uns zu diesem Zweck mit dem PL/SQL Package APEX_DEBUG aber auch ein API zur Verfügung. Mit Hilfe von APEX_DEBUG.ENABLE kann der Debug programmatisch jederzeit aktiviert werden, unabhängig von der Einstellung Debugging in der Applikations- Definition. Durch die Aktivierung des APEX Debug werden nun pro Seiten-Aufruf, pro Seiten-Speichern und pro AJAX-Call (z.b. Filtern im Interactive Report oder Aufruf einer Dynamic Action) ein eigener Debug- Log in der Datenbank eingetragen. Zu jedem Debug Log (auch Debug View or View Identifier genannt) gibt es dann eine beliebige Anzahl von Detail-Einträgen. Dieses Konzept lässt sich mit einzelnen Log-Dateien und deren Inhalt vergleichen. Anzeige der APEX Debug Logeinträge Um das zuvor aktivierte Debugging auswerten zu können, muss man sich nun die erstellten Log- Einträge ansehen. Hierzu gibt es wieder eine Reihe von Möglichkeiten. Die bequemste Art ist im Entwicklermodus auf View Debug in der Developer Toolbar zu klicken, dort wird man dann auf die Debug-Übersicht weitergeleitet, die alle Einträge zur aktuellen Applikation und Seite enthält.

Debug Übersicht aus der Developer Toolbar heraus. Alle Debug-Einträge, auch von anderen APEX Sessions, kann man sich im Application Builder unter Tools Debug Messages anzeigen lassen. Damit kann man beispielsweise einen Anwender bitten den Debug in der URL zu aktivieren und sich so dessen Meldungen ansehen.

Auf einem gesicherten Produktionssystem wird es aber aller Wahrscheinlichkeit nach keinen Application Builder geben, da man dort aus Sicherheitsgründen die Runtime-only-Version von APEX installieren sollte. In diesem Fall hilft man sich mit einer Abfrage auf die View APEX_DEBUG_MESSAGES weiter:

Der Informationsgehalt aller 3 Methoden ist der selbe, schlussendlich gehen alle auf die Daten der View APEX_DEBUG_MESSAGES los. Hier ist es wichtig anzumerken, dass die Debug-Einträge nur für einen sehr begrenzten Zeitraum aufgehoben werden. Dieser Zeitraum lässt sich über die APEX Instanz-Administration nach Bedarf anpassen. Will man, aus welchen Gründen auch immer, die Debug-Meldung für einen sehr langen (oder unendlichen Zeitraum) aufheben, empfiehlt es sich die Meldungen in eine eigene Tabelle herauszukopieren, damit die APEX Verarbeitung nicht durch eine unnötig grosse Tabelle beeinträchtigt wird. Wichtige Informationen im Debug Log In den Debug Log Einträgen finden sich je nach eingestelltem Log-Level sehr viele unterschiedliche Informationen. Nicht alle sind vielleicht auf den ersten Blick interessant, deswegen ist es auch wichtig den richtigen Log-Level zu wählen. Geht man immer auf Level 9, so wird man von unzähligen APEX internen Meldungen überschwemmt, die zumeist nicht interessant sind. Grundsätzlich ist der Log von oben nach unten, in einer zeitlichen Ablaufreihenfolge zu lesen und gibt einen Überblick, was alles beispielsweise in einer Seitenverarbeitung durchgeführt wurde. Dies beginnt beim Initialisieren des Session-Kontext, setzen der NLS Parameter aufgrund der Applikationseinstellungen und geht über das Lesen des Session-State und der Seiten-Einstellungen bis hin zur Verarbeitung des auf der durchgeführten Seite definierten Prozesse und Regionen.

Zusätzlich zu der Informationen WAS durchgeführt wurde, sieht man auch wieviel Zeit seit dem letzten Log-Eintrag (also der Zeile davor) verstrichen ist. Mit dieser Information kann man ganz einfach sehen, wo am meisten Zeit verbraucht wird und dann gezielt diese Verarbeitung oder Abfrage versucht zu tunen. Debug-Meldungen im Browser Bisher haben wir APEX_DEBUG kennengelernt, welches alle Vorgänge mitprotokolliert. Allerdings sind dies nur jene Vorgänge, die in der Datenbank stattfinden. Seit APEX 4.0 gibt es aber Dynamische Aktionen, welche direkt im Browser ausgeführt werden. Will man zu diesen Dynamischen Aktionen Log-Meldungen erhalten, so ist in erster Linie wiederum der APEX Debug Modus zu aktivieren. Im zweiten Schritt öffnet man dann die Javascript Konsole des Browsers, wo man dann Zusatzinformationen zum Ablauf der Dynamischen Aktionen sehen kann:

Mehr Information zum Thema Mehr Information zum Thema Fehlersuche mit einer Menge praktischer Beispiele können sie in der dazugehörigen Präsentation sehen.

Kontaktadresse: Peter Raganitsch FOEX GmbH Aspettenstrasse 48 A-2380 Perchtoldsdorf, Österreich Telefon: +43 (0) 1-373 3639 E-Mail peter.raganitsch@tryfoexnow.com Internet: www.tryfoexnow.com