PL/SQL Instrumentation Toolkit (PIT)

Das Tool stellt ein generisches Framework für alle Aufgaben rund um die Themen

  • Meldungsverwaltung
  • Fehler- und Debugverwaltung
  • Assertionen
  • multilinguale Stammdaten

dar. Es hat sich in vielen Projekten bewährt und ist mit Sicherheit eines der leistungsstärksten OpenSource-PL/SQL-Frameworks für diesen Zweck.

PIT wurde rund um Nachrichten und deren Verwaltung entwickelt. Eine Nachricht ist eine internationalisierbare Meldung mit zusätzlichen Attributen, wie

  • optionale Parameter zur Anreicherung der Meldung
  • einem Schweregrad,
  • einen Call Stack und einem Message Stack im Fall eines Fehlers
  • optionaler Error Codes oder Ids zur Identifikation des Tupels, auf das sich die Meldung bezieht
  • einige mehr

Meldungen werden in Tabellen hinterlegt und unter Ihrem Namen als Konstanten in einem Package bekannt gemacht. Soll eine Meldung verwendet werden, wird sie über dieses Package referenziert. So ist es nicht erforderlich, hartkodierte Meldungen in den Code zu schreiben.

Zur vereinfachten Verwendung dieser Meldungen steht eine API zur Verfügung, die Meldungen als Fehler, für Debugzwecke, aber auch im Rahmen von Assertionsmethoden verwenden. Durch diese API entsteht eine Schnittstelle zwischen dem Code und PIT. Die Aufbereitung der Meldung erfolgt durch PIT, basierend zum Beispiel auf der Spracheinstellung der aktuellen Session.

Analog zu Loggingwerkzeugen wie Log4J im Java-Umfeld können die erzeugten Meldungen über frei konfigurierbare Ausgabemodule ausgegeben werden. PIT liefert einige Ausgabemodule, zum Beispiel zur Speicherung der Meldungen in Tabellen und Trace-Dateien, zum Versand über eine E-Mail oder zur Ausgabe über die Konsole, mit. Eigene Ausgabemodule können einfach programmiert werden, ohne PIT selbst zu verändern. Nach der Kompilierung dieser Ausgabemodule können sie sofort von PIT verwendet werden.

Eine leistungsfähige, auch außerhalb von PIT nutzbare, Parameterverwaltung ermöglicht die feingranulare Kontrolle über die Ausgabe der Meldungen. Zudem kann das Ausgabeverhalten von PIT dynamisch durch die PIT API kontrolliert werden. Durch die Verwendung eines global verfügbaren Kontext als Ablage für die Ausgabeparameter ist PIT in der Lage, Sessions auch im Umfeld von Connection Pools zu tracen.

Flankierende Funktionen erlauben die Verwendung von PIT für alle Aufgaben, die in irgendeiner Form mit Meldungen und deren Verarbeitung zu tun haben. So wird PIT zum Beispiel in unserer Implementierung der Finite State Machine verwendet, um Log- und Statusmeldungen abzusetzen. Auch für diese Verwendung stehen die feingranularen Ausgabemöglichkeiten zur Verfügung.