Problemaufdeckung bei AMDP? AMDP-Debugging!
Mit den ABAP Managed Database Procedures (AMDP) gibt es ganze neue Möglichkeiten, um die Performance zu verbessern und Code direkt auf der Datenbank auszuführen. Der sogenannte „Code Pushdown“ überträgt ausführbaren Code direkt auf den Datenbankserver und führt ihn dort aus. Wie kann jedoch der Code auf der Datenbank per Debugging analysiert werden, um Probleme aufzudecken oder das Verhalten der Anwendung zu verstehen? Auch bei AMDP muss auf das Debugging nicht verzichtet werden!
ABAP Managed Database Procedures oder kurz AMDP sind Klassen, die in ABAP erzeugt, mit nativen SQL befüllt und direkt auf der Datenbank ausgeführt werden können. Beim ersten Ausführen der Klasse auf dem Application Server werden auf den SAP HANA DB die entsprechenden Prozeduren erzeugt und ausgeführt. Für das Debugging ist diese erste Ausführung unbedingt notwendig. Erst danach kann AMDP-Debugging stattfinden. Weiteres zu AMDP finden Sie übrigens auch in diesem Blogbeitrag.
Um AMDP anlegen und auch debuggen zu können, sind mindestens die Version ABAP 7.5 und auch Eclipse und die ABAP Development Tools (ADT) notwendig. Die Installation haben wir in einem Ebook zusammengefasst:
Zudem müssen Sie sicherstellen, dass die entsprechenden User zum Debugging auch die passenden Berechtigungen besitzen. Auf der SAP-ABAP-Seite sollte der Benutzer die Möglichkeit zum Ausführen und Debuggen des Programms besitzen. Der SAP-HANA-Benutzer benötigt ebenfalls Berechtigungen zum Ausführen und Debuggen der Prozedur auf dem SAP-HANA-System.
Die Benutzer
- SAP-ABAP-Benutzer: Dies ist der Benutzer zum Programmieren, Debuggen und Ausführen von ABAP-Programmcode auf dem SAP-System.
- SAP-HANA-Benutzer: Dieser Benutzer kann den Datenbankkatalog und das ABAP-Systemschema lesen. Außerdem kann er Prozeduren ausführen, debuggen und sich per SQLScript Debugging an Sessions des SAP<SID> Benutzers hängen.
- SAP<SID> Benutzer (Session User): Er initiiert die Ausführung der Datenbankprozedur und vergibt die Berechtigungen, sich an eine Benutzersession per Debugging zu hängen.
AMDP Debugging: Step by step
Wir nehmen für unser Beispiel an, dass ABAP-Programmcode eine AMDP-Klasse verwendet. Die ausgeführte AMDP-Methode soll nun mittels Debugging analysiert werden. Zuvor sollte der SAP-HANA-Benutzer in der AMDP-Prozedur einen Breakpoint an der Stelle setzen, wo in der AMDP angehalten werden soll. Zusätzlich ist auf der Datenbank eine Debug-Konfiguration zu erstellen und der SQLScript Debugger anzuschalten.
Wichtig bei der Anlage der Debug-Konfiguration in der Ansicht „Debug“ in Ecplise ist die Auswahl einer SAP HANA Stored Procedure. In der Konfiguration wird das Debugging einer externen Session ausgewählt. Anschließend kann das SAP HANA System angewählt werden. Unter HANA User wird dann der Session User ausgewählt, der die Ausführung auf der Datenbank später über den Report ausführt. Optional kann auch der Applikationsbenutzer, also der SAP ABAP Benutzer, angegeben werden.
Ist der SQLScript Debugger angeschaltet, kann nun der Report durch den SAP ABAP Benutzer ausgeführt werden. Anschließend hält der Debugger am gewünschten Breakpoint an.
Sie benötigen Unterstützung bei der der Erstellung oder bei Debugging von AMDP? Kontaktieren Sie uns gern!