Hallo Peter,
da gibt es
GET_LOCK(name,time)
...checken
...inserten
release_lock(name)
Es wird nicht wirklich gelockt, sondern diese Locks werden nur in eine Advisory Table eingetragen. Jeder Prozess, der nun schreiben will, sollte also versuchen, den Lock mit dem Namen zu bekommen und wenn das nicht klappt, dann nach time nochmal wiederkommen.
Mach Dir Konstanten für name und time, damit auch wirklich alle Prozesse die selben benutzen und greif aus jedem Prozess immer nur über eine Hüllfunktion,
z.B
checked_insert($tablename,$data,$con)
{
wenn nicht GET_LOCK(name,time) dann return false;
...checken
...inserten
release_lock(name)
return true;
}
Grüße
Tom