Man stelle sich vor: Ein Kunde möchte, dass bis zu 100 Anwender gleichzeitig Datensätze in derselben Tabelle bearbeiten sollen. Jeder Datensatz muss aber nur einmal bearbeitet werden. Es gibt keinerlei Zuständigkeiten; jeder der 100 Anwender bearbeitet diejenigen Datensätze, die er möchte. So, dass am Ende jeder Datensatz einmal bearbeitet wurde.
Klingt verrückt? Ja klar! Aber: Was der Kunde will…
Wenn man jetzt jeden Datensatz vor der Bearbeitung auf eine Sperre testen würde, würde das viel zu lange dauern. Ich habe daher dran gedacht, den aktuellen Bearbeitungsstatus sekündlich zu aktualisieren und die Datensätze, die gerade bearbeitet werden oder schon bearbeitet wurden farblich zu kennzeichnen.
Wenn jeder der 100 Anwender jedoch sekündlich den
SQL-Server nach dem Status aller Datensätze (bis zu 10000) befragen würde, ginge dieser wohl ganz schnell in die Knie. Wenn jedoch ein Anwender sekündlich den
SQL-Server abfragt und das Ergebnis übers Netzwerk an die anderen 99 Anwender broadcastet, könnte das funktionieren. Oder jeder Anwender broadcastet seine aktuellen Änderungen an die anderen…
Vielleicht gibts ja dafür auch noch ganz andere Methoden, die mir gerade nicht einfallen. Nach Möglichkeit soll kein neuer Server aufgesetzt werden.
Eine gezielte oder zufällige Aufteilung der Datensätze an die 100 Anwender ist keine Option. Das machen wir schon seit 20 Jahren so. Jetzt soll was ganz Neues her