Dennis Plöger: Problem experten sind gefragt!

Beitrag lesen

Hallo Daniel

ich habe ein Problem.

Wer hat das nicht ;-)

Ich habe 2 Scripte (Perl) der eine liegt auf Server x der ander liegt zusammen mit einer Datenbank auf Server y. Nun muss mein Script das auf dem Server x liegt auf Server y zugreifen und die Datenbank auslesen und bei bedarf veraendern und auf dem Server wieder abspeichern. Jedoch verandert der Script der auf y liegt auch die Datenbank in unregelmaesigen abstaenden. Wie kann ich eine Verbindung vom Server x zu Server y herstellen, bei dem der Script der auf x liegt auch schreiben kann, und die Datei solange schreibgeschuetzt ist, bis der Script zuende geschrieben hat.

Die Lösung heißt: FileLocking. Ich persönlich habe nicht die heftig großen Erfahrungen mit Filelocking und gebe hier nur ein kurzes Script zum Besten, mit dem es "auch" geht. Ich weiß, dass es da interne Funktionen in Perl gibt, die das Filelocking unterstützen (heißen sogar flock glaube ich.)

Also dieses Script funzt auch, ist aber etwas unschön:

while (-e "script.lock)
{
       # warten, bis Locking-File nicht mehr existiert.
}

open (locking, ">script.lock");
close (locking);

.. Script abarbeiten

unlink ("script.lock");

Wie gesagt, etwas unschön, vor allem, wenn das Script mittendrin abbricht und die lock-datei weiter bestehen bleibt !!! Es ist aber ein Anfang. :-)

Bis denne,
Dennis