Hi leutz.
Ich hab jetzt meine Frage schon anderen Foren gestellt und habe leider keine Antwort erhalten, obwohl ich glaube das genau diese Anforderung eigentlich sehr oft gebraucht wird.
Ich habe es schon in verschiedenen Richtungen probiert, aber ich fang hier einfach mal ganz von vorn an.
Ich habe Daten in einer PosgreSQL-Datenbank und will z.B. einen Artikel 'Exklusiv' öffnen'.
D.h. wenn ein User einen Artikel zum bearbeiten geöffnet hat soll dies kein anderer User machen können.
Ich könnte dies über einen SQL-Befehl zwar locker sperren(connection öffnen, SQL-Befehl 'SELECT .... FOR UPDATE' dann ist dieser Satz bis zum commit der Connection gesperrt) aber wenn zu dieser Zeit ein zweiter user den Datensatz bearbeiten will merkt er nicht das dieser gesperrt ist. Denn java wartet einfach bis der erste User fertig ist und führt danach den befehl des anderen Users aus.. egal wie lange das auch dauert!!
Wie kann ich dieses Problem lösen???
Also User 1 öffnet einen Datensatz 'exklusiv'. Wenn User 2 jetzt diesen Satz öffnen möchte soll er eine Meldung bekommen 'Datensatz wird gerade bearbeitet'
Bitte schaut es euch mal an denn ich verzweifle langsam
Ich hab jetzt meine Frage schon anderen Foren gestellt und habe leider keine Antwort erhalten, obwohl ich glaube das genau diese Anforderung eigentlich sehr oft gebraucht wird.
Ich habe es schon in verschiedenen Richtungen probiert, aber ich fang hier einfach mal ganz von vorn an.
Ich habe Daten in einer PosgreSQL-Datenbank und will z.B. einen Artikel 'Exklusiv' öffnen'.
D.h. wenn ein User einen Artikel zum bearbeiten geöffnet hat soll dies kein anderer User machen können.
Ich könnte dies über einen SQL-Befehl zwar locker sperren(connection öffnen, SQL-Befehl 'SELECT .... FOR UPDATE' dann ist dieser Satz bis zum commit der Connection gesperrt) aber wenn zu dieser Zeit ein zweiter user den Datensatz bearbeiten will merkt er nicht das dieser gesperrt ist. Denn java wartet einfach bis der erste User fertig ist und führt danach den befehl des anderen Users aus.. egal wie lange das auch dauert!!
Wie kann ich dieses Problem lösen???
Also User 1 öffnet einen Datensatz 'exklusiv'. Wenn User 2 jetzt diesen Satz öffnen möchte soll er eine Meldung bekommen 'Datensatz wird gerade bearbeitet'
Bitte schaut es euch mal an denn ich verzweifle langsam