Alvaro Herrera <alvherre@commandprompt.com> wrote:
>> > It's on Windows
>> I'd go with notify and a listener written in C using c-client to send
>> emails, but only because I've used those before.
> I wouldn't write it in C but rather Perl or Python, but whatever suits
> your fancy should work (Visual Basic anyone?). The advantages to using
> a listener program instead of doing it in a trigger or something like
> that are:
> - transaction semantics are kept; you don't send an email only to find
> out your transaction has been rolled back for whatever reason, and then
> send a second email when the transaction is replayed
> - you don't block the database system just because your mail server is
> down
> - the email can be sent on whatever schedule fits the listener program
> - the listener client can run elsewhere, not only in the database server
> - any further external processing can take place at that time, without
> bothering the database server
> - other stuff I don't recall ATM
The main disadvantage in using a listener is that it is your
responsibility to make sure that the listener is listening
24/7 - from before the database accepts other connections,
through network failures, bugs, etc. - otherwise notifica-
tions will be lost. Therefore I find it much more reliable
(and easier to program) to copy the relevant data to a table
"mailqueue" (or whatever) and then process that queue every
other minute.
Tim