2014-11-04 2 views
10

Ich benutze H2 für Datenbank-Management, und das möchte ich tun:Wie erlaube ich mehreren Benutzern gleichzeitig, sich mit meiner H2-Datenbank zu verbinden?

Ich würde gerne mehrere Benutzer auf eine Datenbank gleichzeitig zugreifen lassen. Ich habe ein bisschen über "MULTI_THREADED = TRUE", "LOCK_FILE = NO" und "AUTO_SERVER = TRUE" gelesen. Ich habe auch gelesen, dass "LOCK_FILE = NO" gefährlich sein kann, weil es die Datenbank beschädigen kann. Ich würde das definitiv nicht wollen, also gehe ich davon aus, dass das ein schlechter Weg ist. Ich habe auch versucht, die Verbindung sofort zu schließen, nachdem auf einen Datensatz zugegriffen wurde, ob er gelesen oder geschrieben wurde. Bis jetzt scheint nichts zu funktionieren. Die Anwendung erlaubt mir nicht, von der Datenbank zu lesen oder in die Datenbank zu schreiben, wenn die Datenbank in einer separaten Instanz der Anwendung verbunden wurde (zB auf einem anderen Computer). Sobald ich die Anwendung auf einem Computer vollständig geschlossen habe, kann ich auf die Datenbankdatensätze zugreifen.

Wie kann ich mehreren Benutzern erlauben, sich gleichzeitig mit der H2-Datenbank zu verbinden, ohne die Sicherheit der Datenbank zu gefährden?

+0

Lustig, wie die erste Antwort, die Sie bekommen, genau das ist, was ich gesagt habe ... – MadProgrammer

+1

Nicht genau. Keine Ihrer Antworten war sehr direkt oder hilfreich. – Ryan

+0

Also "den Server-Modus verwenden" war nicht hilfreich ... Schande – MadProgrammer

Antwort

10

Es sieht so aus, als ob Sie H2 im Embedded-Modus verwenden, der jeweils nur eine Datenbankverbindung zulässt. Details finden Sie in der Dokumentation unter connection modes.

Wenn Sie Unterstützung für mehrere Verbindungen benötigen, einschließlich von mehreren Anwendungsinstanzen, müssen Sie stattdessen H2 in server mode starten und den entsprechenden connection URLs für diesen Modus verwenden.

+0

Also, gibt es eine Möglichkeit, "AUTO_SERVER = TRUE" zu verwenden? Wäre das gemischt? – Ryan

+0

Und, wenn ich den Auto-Server wahr mache, würde das mehrere Verbindungen zulassen? – Ryan

+0

Der [automatische gemischte Modus] (http://www.h2database.com/html/features.html#auto_mixed_mode) (d. H. AUTO_SERVER = TRUE) ermöglicht mehrere gleichzeitige Verbindungen mit der Datenbank. Ich würde es jedoch aufgrund der Einschränkungen, dass die erste Verbindung den Server startet, nicht empfehlen und wenn diese Verbindung geschlossen wird, wird der Server und alle Remote-Verbindungen daher daher geschlossen und ausstehende Transaktionen werden zurückgesetzt. – Lolo

Verwandte Themen