Announcement

Collapse
No announcement yet.

emailen direkt aus der Datenbank?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • emailen direkt aus der Datenbank?

    Hallo zusammen,

    ist es möglich direkt aus der Firebird - Datenbank heraus (z.B. mittels externer Funktion)
    emails an feste Empfänger zu versenden?

    Hintergrund ist folgender:
    Wir setzen hier eine Firebird 2.1 Datenbank ein. Innerhalb dieser Datenbank gibt es diverse Prüfroutinen, die bestimmte Plausibilitäten/Abläufe aufgrund definierter Ereignisse prüfen und das Ergebnis in einer dafür vorgesehenen Fehlertabelle eintragen.
    Kurz ein vereinfachtes Beispielszenario zur Verdeutlichung:
    Eine Software nimmt in einem Maschinenpark pro Maschine die anfallenden Zeiten auf, in denen die Maschine steht. Der jeweilige Grund des Stillstands muss von Hand über ein Auswahlmenü quittiert werden und wird mit einer Maschinennummer in die Datenbank eingetragen. Nun müssen unterschiedliche Maschinen in unterschiedlichen Intervallen gewartet werden, was den Stillstand mit dem Grund "Wartung" zur Folge hat. Sicher ist dabei nur, das jede Maschine mindestens einmal in 3 Tagen gewartet werden muss. Daher läuft in der Datenbank Triggergesteuert eine Prüfroutine, die regelmäßig prüft, ob innerhalb der letzten drei Tage ein entsprechender Stillstand angefallen ist. Ist das der Fall schreibt sie in die Fehlertabelle für die entsprechende Maschine die Fehlernummer 0, sonst die Fehlernummer 1.

    Da es diverse Pruefroutinen gibt, die unterschiedliche Fehlernummern zur Folge haben, wäre es cool, wenn ich nach jedem Update in der Fehlertabelle prüfen kann, ob sich die Fehlernummer geändert hat und wenn ja und sie ist nicht 0 (=kein Fehler) eine entsprechende Mail versenden kann.
    Da die Prüfung der Wertänderung über einen Trigger problemlos möglich ist, wäre es super, wenn ich in diesem Zuge auch gleich eine mail rausschieben, oder zumindest ein externes Programm (z.B. blat.exe) anstossen könnte könnte. Ist sowas Firebirdintern inzwischen möglich? Ich weiss, das etwas ähnliches in der Version 3 geplant ist: http://tracker.firebirdsql.org/browse/CORE-2144 - die Frage ist halt, ob es da jetzt schon etwas ähnliches gibt.

  • #2
    Sollte als UDF-Funktion problemlos möglich sein

    Comment


    • #3
      Hallo,

      ich würde die Email nicht direkt aus einer UDF heraus verschicken, da UDFs mehr für einfache, non-blocking Operationen gedacht sind. Ich würde das mit einer externen Email-Versende-Applikation lösen, die auf eine Event hört, das vom Trigger gefeuert wird. Beim Auftreten des Events wird dann die Applikation eine "Email-Tabelle" abarbeiten, Emails versenden, Status-Codes schreiben, inkl. einem Retry-Mechanismus etc.

      Thomas
      Thomas Steinmaurer

      Firebird Foundation Committee Member
      Upscene Productions - Database Tools for Developers
      Mein Blog

      Comment


      • #4
        Letzteres habe ich jetzt umgesetzt - funktioniert einwandfrei.

        Danke für den Tipp!

        Comment

        Working...
        X