Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [Postgresql] Trigger ruft Programm "zu schnell" auf (https://www.delphipraxis.net/120400-%5Bpostgresql%5D-trigger-ruft-programm-zu-schnell-auf.html)

BloodySmartie 10. Sep 2008 15:27

Datenbank: Posgtresql • Version: 8.3 • Zugriff über: ZEOS

[Postgresql] Trigger ruft Programm "zu schnell" au
 
Hallo!

Ich habe ein Problem, das mich etwas auf dem falschen Fuß erwischt hat. Wenn in eine Tabelle geschrieben wird, ruft ein After Insert or Update - Trigger eine Prozedur in PL/Perl(untrusted) auf, die ihrerseits per Socket-Kommunikation ein Programm anweist, die eingefügte Zeile auszulesen.

Scheinbar wird dabei das externe Programm noch aktiv, bevor die Zeile tatsächlich in die Datenbank geschrieben werden konnte, denn das SELECT schlägt am laufenden Band fehl. Fügt man aber ein Delay ein von beispielsweise 500 ms, dann gelingt der Vorgang immer. Das ist mir allerdings als endgültige Lösung viel zu schmutzig.

Habt ihr eine Idee?

Hier der Quellcode der Triggerprozedur:
SQL-Code:
use strict;
use Socket;
my($remote,$port,$iaddr,$paddr,$proto);
$remote = '192.168.0.150';
$port = 5000;
$iaddr = inet_aton($remote);
$paddr = sockaddr_in($port,$iaddr);
$proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto);
connect(SOCK,$paddr);
print SOCK $_TD->{new}{id};
close(SOCK);
return;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz