Servlet Instanzen

Hallo,

wenn ich ein Servlet habe, und dann von N Rechnern aus eine Sitzung (session) starte, also insgesamt N sessions habe, wird dann nur eine Instanz vom Servlet für alle Sessions erzeugt ODER wird für jede Session eine Instanz erzeugt?

Mein Problem was ich habe ist folgendes:

Ich habe eine Wep-app die eine temporäre derby-Datenbank benutzt. Der Inhalt der Datenbank stammt aus ein paar Dateien.
Bei jedem Login wird nun geprüft, ob der Inhalt der DB noch aktuell ist. Wenn sich der Inhalt der Dateien verändert hat, so wird die derby-DB aktualisiert. Nach dem Update ist der Nutzer dann gleich eingeloggt. Für alle anderen Nutzer die sich während eine Updates versuchen einzuloggen, erscheint als Antwort, dass sie Datenbank aktualisiert wird.

Nun habe ich folgenden Fehler:

Wenn sich niemand anderes während eines Updates versucht einzuloggen, so ist der Nutzer, der das Update einleitet hat, sofort eingeloggt. Was völlig korrekt ist.
Wenn sich nun aber während eines Updates ein anderer Nutzer B versucht einzuloggen, so ist der Nutzer A (der das Update eingeleitet hat) nach dem Update nicht eingeloggt, sondern es erscheint auch für Nutzer A die Meldung “das die Datenbank aktualisiert wird”. <- Dies ist ja falsch, da das Update ja abgeschlossen ist.

Ergänzend:

Bei jedem Login wird geprüft, ob schon ein Upate läuft! Dass heißt, es kann nur ein Update eingeleitet werden, gerade kein Update am laufen ist.

Ein Servlet wird einmal erzeugt und dann immer benutzt zur Lebenszeit des Servers existiert nur eine Instanz des Servlets

Also wenn 1000 Leute eine Wep-App nutzen, dann nutzen sie alles die selbe Instanze? Sorry, so verstehe ich deine Aussage.

jep so ist das, zumindest was das Servlet angeht
was dann darin passiert ist ja ne Sache deiner Programmierung

Also wenn im Servlet eine aufwendige Rechnung geschiet, welche z.B. 10min dauern würde, dann wird keine andere Anfrage von einem anderen Nutzer beantwortet bevor nicht die Rechnung fertig ist? Fände ich ziemlich dumm.

nein das ist ja nicht gesagt
ein Servlet ist NICHT Threadsafe
wenn du 1000 gleichzeitige Anfragen hast läuft in deinem Servlet 1000x die doGet Methode ab
Weil jede Anfrage läuft in einem eigenen Thread ab aber das immer im gleichen Objekt