Hallo.
Angenommen ich verwende als DB-Schicht einen ORM-Mapper (JPA, Hibernate), die DB-Aufrufe werden in Transaktionen nach dem ACID-Prinzip durchgeführt, es können also keine Inkonsistenzen entstehen.
Die Oberfläche wird mit einem Web-Framework entwickelt, welches dann (ohne EJB oder ähnliches) auf die DB-Schicht zugreift und in einem Tomcat deployed.
Eine Webanwendung ermöglicht ja, dass mehrere Menschen theoretisch gleichzeitig auf die gleichen Daten zugreifen und diese verändern.
Wie gewährleistet man hier die Transaktionssicherheit? Wird das durch den Tomcat geregelt? Oder wird von der DB-Schicht eine Exception geworfen, weil die Daten schon durch einen anderen Nutzer gelockt sind - diese Exception muss man abfangen und an der GUI anzeigen, dass die Daten bereits von einem anderen Nutzer verwendet werden?
Oder ist das bei jedem Web-Framework anders gelöst?
Bei EJBs hat man das gleiche Problem, weil hier dann Anwendungs- und DB-Schicht in einer Transaktion laufen, aber Oberfläche trotzdem nicht?
Vielen Dank für Erläuterungen, ich sitz gerade auf dem Schlauch
Angenommen ich verwende als DB-Schicht einen ORM-Mapper (JPA, Hibernate), die DB-Aufrufe werden in Transaktionen nach dem ACID-Prinzip durchgeführt, es können also keine Inkonsistenzen entstehen.
Die Oberfläche wird mit einem Web-Framework entwickelt, welches dann (ohne EJB oder ähnliches) auf die DB-Schicht zugreift und in einem Tomcat deployed.
Eine Webanwendung ermöglicht ja, dass mehrere Menschen theoretisch gleichzeitig auf die gleichen Daten zugreifen und diese verändern.
Wie gewährleistet man hier die Transaktionssicherheit? Wird das durch den Tomcat geregelt? Oder wird von der DB-Schicht eine Exception geworfen, weil die Daten schon durch einen anderen Nutzer gelockt sind - diese Exception muss man abfangen und an der GUI anzeigen, dass die Daten bereits von einem anderen Nutzer verwendet werden?
Oder ist das bei jedem Web-Framework anders gelöst?
Bei EJBs hat man das gleiche Problem, weil hier dann Anwendungs- und DB-Schicht in einer Transaktion laufen, aber Oberfläche trotzdem nicht?
Vielen Dank für Erläuterungen, ich sitz gerade auf dem Schlauch