Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Trigger-abhängige Client Interaktionen (bezüglich Oracle8i) oder : Was ein Trigger so alles „anstoßen“ kann... „Trigger-abhängige Client Interaktionen“

Ähnliche Präsentationen


Präsentation zum Thema: "Trigger-abhängige Client Interaktionen (bezüglich Oracle8i) oder : Was ein Trigger so alles „anstoßen“ kann... „Trigger-abhängige Client Interaktionen“"—  Präsentation transkript:

1 Trigger-abhängige Client Interaktionen (bezüglich Oracle8i) oder : Was ein Trigger so alles „anstoßen“ kann... „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

2 Inhalt Der Trigger Strored Procedures & Stored Functions Vorteile von Stored Procedures & Functions Anwendungsmöglichkeiten Wie geht das denn genau?? „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

3 Der Trigger (der Auslöser) wird von der Datenbank ausgelöst, wenn mit einer DML (database modifying language) Daten in der Datenbank verändert werden kann mit dem CALL -Befehl eine „Stored Procedure“ oder eine „Stored Function“ auslösen ist die Taste mit nahezu unbegrenzten Möglichkeiten „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

4 Beispiel : Trigger CREATE TRIGGER Triggername AFTER UPDATE OF Spalte ON Tabellenname FOR EACH ROW BEGIN Anweisung1;... END; „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

5 Stored Procedures & Stored Functions sind lokal in der Datenbank gespeichert Stored Procedures ( für void Methoden ) Stored Functions ( für Methoden mit Rückgabewert ) Aufrufen von Stored Procedures & Functions –SQL DML-Befehlen ( INSERT, UPDATE, DELETE und SELECT ) –SQL CALL -Befehl „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

6 Beispiel : Stored Procedures & Functions PROCEDURE Prozedurname IS Variable1 Datentyp;... BEGIN Anwendung1;... EXCEPTION when... END Prozedurname; „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

7 Vorteile von Stored Procedures & Functions hohe Geschwindigkeit –bereits kompilierter Code serverseitig ausgeführt einfache Einbindung von Methoden (Java, C) systemunabhängig und vielnutzerfähig „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

8 Anwendungsmöglichkeiten Als Reaktion auf Datenbank-Veränderungen kann über Trigger alles, was auch mit Stored Procedures & Functions möglich ist, ausgeführt werden. –Mail-Benachrichtigungen –Ausführung von Prozeßketten ( -folgen) –Automatisierung von Verwaltungsprozessen –...noch Ideen? „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner

9 Trigger in PL/SQL Nutzen der mitgelieferten packages: utl_http - Verbindung mit HTTP-Server per HTTP-Protokoll utl_tcp - Kommunikation per TCP/IP Protokoll utl_smtp - Senden von Beispiel utl_smtp: Sehr unkomfortabel, da Kommunikation auf niederer Ebene des SMTP-Protokolls Abstützen auf integrierte JServer API

10 „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner Trigger in PL/SQL(2) Beispiel-Prozedur: CREATE OR REPLACE PROCEDURE sendMail ( Parameter ) IS mail_conn utl_smtp.connection; BEGIN mail_conn := utl_smtp.open_connection( mailhost ); utl_smtp.helo(mail_conn, mailhost); utl_smtp.mail(mail_conn, sender); utl_smtp.rcpt(mail_conn, recipient); utl_smtp.data(mail_conn, message); - Nachricht gemäß RFC821 utl_smtp.close_data(mail_conn); utl_smtp.quit(mail_conn); END;

11 „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner Trigger in Java verschiedene Möglichkeiten: Hochladen der gesamten Applikation in den Oracle-Server + Vermeidung der Netzzugriffe auf die DB + leichtes Kopieren in andere DB + Änderungen auf Server leicht zu handhaben - eventuelles Laden von ganzen Bibliotheken in die DB - Oracle8i unterstützt Java1.2 Praxis: hochladen der JavaMail, JB Activation Framework und Teilen der 1.3 JDK sprengen genutzen DB-Account Anstoßen eines Prozesses auf einem anderen Server (zB per Socket) + Applikation kann komplett auf Server laufen und dessen Fkt. nutzen - Performanceverlust des auslösenden Ereignisses durch Kommunikation über Netzwerk Praxis: DB-Account darf keine Socket-Verbindung herstellen(Admin??)

12 „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner Trigger in C Funktionen liegen auf Datenbank-Server, aber nicht im Adressraum der DB + Nutzung der Funktionalität und Geschwindigkeit von C + Nutzen anderer Sprachen (Assembler, C++ etc) - Zeitverlust durch Ausführen ausserhalb der DB - Zeitverlust durch eventuelles Laden Funktionen (sind in DLL‘s verpackt)

13 „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner Und nun als praktisches Beispiel Mail-Benachrichtigung per Trigger

14 „Trigger-abhängige Client Interaktionen“ von Mariusz Kukulski und Sven Bittner Die Tabelle: CREATE OR REPLACE TABLE trigger_test ( recVARCHAR2(100) NOT NULL, textVARCHAR2(100) NOT NULL ); Der Trigger: CREATE OR REPLACE TRIGGER test_trig1 AFTER INSERT ON trigger_test FOR EACH ROW CALL send_Mail(:new.rec, :new.text) Das Resultat: Eine mit dem eingetragenen Text an den eingetragenen Empfänger


Herunterladen ppt "Trigger-abhängige Client Interaktionen (bezüglich Oracle8i) oder : Was ein Trigger so alles „anstoßen“ kann... „Trigger-abhängige Client Interaktionen“"

Ähnliche Präsentationen


Google-Anzeigen