23.11.2012 Aufrufe

div - beim Fachbereich Informatik - Hochschule Darmstadt

div - beim Fachbereich Informatik - Hochschule Darmstadt

div - beim Fachbereich Informatik - Hochschule Darmstadt

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

3.3.3 Datenbankanbindung mit PHP<br />

Kritische Abschnitte sichern<br />

� Konsequenz der Parallelverarbeitung<br />

unabhängiger<br />

HTTP-Requests<br />

- Zugriff auf gemeinsame<br />

Ressourcen (Dateien,<br />

Datensätze) muss gesichert<br />

sein<br />

- vgl. Mutex, Semaphore, Monitor<br />

- bei Datenbanken voneinander<br />

abhängige Mehrfachzugriffe mit<br />

Transaction und Lock<br />

einklammern<br />

� eventuelle Fehler treten erst<br />

unter Last auf<br />

- schwer zu testen<br />

- Entwurf sorgfältig durchdenken<br />

Die Umsetzung<br />

unterscheidet sich stark für<br />

andere Datenbanken<br />

(Oracle, PostgreSQL) !<br />

z.B. Belegung beschränkter Plätze<br />

query("Begin Transaction;");<br />

query("Lock Table belegt Write;");<br />

$result = query(<br />

"Select count(*) From belegt;");<br />

$anzahl = fetch_row($result)[0];<br />

hier darf kein anderer Prozess<br />

unterbrechen und ein Insert Into<br />

ausführen<br />

if ($anzahl < 16)<br />

query("Insert Into belegt ...");<br />

else<br />

echo("ist schon voll");<br />

query("Unlock Tables;");<br />

query("Commit;");<br />

Prof. Dr. R. Hahn, Prof. Dr. B. Kreling, h_da <strong>Fachbereich</strong> <strong>Informatik</strong>, Entwicklung webbasierter Anwendungen, SS2009<br />

325

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!