Derby ein zweites mal als Read-only öffnen

Status
Nicht offen für weitere Antworten.

Stinner

Mitglied
Hallo,
habe eine Desktop-Anwendung geschrieben, in der in Derby nutze.

Jetzt soll die Anwendung auf ein Netzlaufwerk und mehreren Leuten zugänglich gemacht werden.
Ich nutze den EmbeddedDriver von derby und es klappt alles wunderbar.

Allerdings lässt sich derby nicht 2 mal starten. Momentan habe ich es so gelöst, dass ich eine Meldung anzeige, dass die Datenbank bereits genutzt wird, falls ein anderer Anwender versucht die Anwendung ein zweites mal zu starten.

Es wäre aber schön, wenn sich die Anwendung nochmal öffnet, in einer Read-only mode. In dem Handbuch finde ich zu dem Thema immer nur, dass mit derby read-only DBs erstellen kann, wenn man sie in eine jar packt etc..

Aber das ist ja nicht das was ich will.

Kann mir jmd sagen, ob es möglich ist, die Anwendung ein zweites mal im Read-only zu starten und wo ich dazu was nachlsesn kann?

GRuß
 

vogella

Bekanntes Mitglied
Hallo,

geht meines Wissens nicht. Wenn Du im Embedded Mode arbeitest, dann kann nur einer drauf zugreifen.

Ich hatte das gleiche Problem vor einiger Zeit und hatte es dann so gelöst, daß wenn User 1 die DB fertig gelesen hatte ich die Verbindung komplett getrennt hatte (shutdown=true im Connection String). Damit konnte dann der nächste User die DB starten. Beim Speichern habe ich dann die Verbindung wieder geöffnet, usw.

Somit konnte zwar wieder nur ein User zur selben Zeit auf die DB zugreifen, aber zumindestens konnten mehrere gleichzeitig mit der DB arbeiten.

War aber letztendlich doch nur ein wilder Hack und ich habe letztens auf Derby im Server mode umgestellt. Da ist sehr viel schöner. Wenn Du irgendwo einen Rechner herumstellen hast, würde ich das lieber machen.
 

Stinner

Mitglied
hi,
hat es lange gedauert den Server Treiber einzubauen?
Muss mal schauen, was ich alles ändern müsste.

Habe schon versucht die 3 Schichten in meiner Applikation einzuhalten. Müsste ja nur
Änderungen auf der DB Ebene geben.
 

vogella

Bekanntes Mitglied
Der Aufwand in meinem Fall war einen Rechner zu finden, der mir als Server dient. Und dann mußte ich noch herausfinden, wie man Derby als Windows Service started.

Da hast Du es einfacher, da ich das hier beschreibe: Apache Derby Database - Tutorial

Ansonsten, mußt Du nur das jar austauchen und den anderen Treiber in Deinem JDBC Aufruf nehmen. Das ist ne Sache von 2 Minuten.
 

Stinner

Mitglied
Könnte ich hier nochmal nachfragen.
Hatte das Problem hinten ran gestellt, will es aber jetzt doch machen.

Situation ist die, dass wir hier alle auf einen Server zugreifen, ich jedoch nicht Admin rechte habe. wird halt als netzlaufwerk genutzt.
Dort würde ich jetzt gerne Derby im Server/Client starten.
Brauche ich dann 2 Applikationen oder kann ich den Client/Server in einer
Apllikation machen und trotzdem die Datenbank im Read Only öffnen?

Habe noch nix mit Client/Server gemacht und trau mich da nicht so einfahc ran....
 

vogella

Bekanntes Mitglied
Ja, so war es bei mir auch. Ich hatte nur eine ein Netzwerklaufwerk. Dann geht eben Derby auch nur mit einem User, oder Du machst nach dem Aufbau von User 1 einen harten shutdown von Derby (shutdown=true im JDBC Connectionstring).

Besser ist wirklich Derby im Servermode laufen zu lassen. Schau Dir mal mein Tutorial ( Apache Derby Database - Tutorial ) an, damit sollte das relativ einfach sein. Kannst gerne nachfragen, ich passe dann das Tutorial an. ;-)

Zum Testen kannst Du direkt auf dem Server Derby mit startNetworkServer starten. Später solltest Du dann daraus einen MS Service machen. Ist beides im Tutorial beschrieben.
 

Stinner

Mitglied
Hi,
habe das Tutorial durchgelesen.
Wenn ich das richtig verstanden habe.
Um derby im client/server bei mir laufen zu lassen, müsste ich die beiden Umgebungsvariablen setzen und dann einfach den Server starten über die Kommandozeile und als jar in meiner Appliakation den DerbyClient nutzen.

Um es dann auf dem Server laufen zu lassen, dass gleiche auf dem Server, nur dass die Hostaddresse dann eben angepasst werden muss.

Was bringt mit der WindowsDienst und könnte ich den Netzwerk Server auch mit Java starten?
GRuß
 

vogella

Bekanntes Mitglied
Die Derby DB muß ja als separater Prozeß laufen, d.h. Du kannst den Server NICHT von Deinem Programm aus starten. Der Windows Service kann genutzt werden, um Derby automatisch zu starten, d.h. wenn der Rechner hochfährt startet die DB. Ansonsten muß Du Dich auf dem Server anmelden, eine Shell starten und das Ding immer händisch starten.
 

Stinner

Mitglied
Hi,
da ich die Variant mit dem Server hier nicht nutzen kann, versuche ich das ganze jetzt auch selbst zu implementieren.
Habe gesehen, dass man Derby auch im EmbeddedMode in Read-Only öffnen kann, allerdings sperrt das DBMS trotzdem die Datenbank über die db.lck

Versuche jetzt gerade diese File zu löschen, allerdings geht das nicht, da die File von Derby genutzt wird. Sons wäre mein Ansatz, dass ich immer im Read-Only öffne und dann die db.lck file lösche. Will jmd in den Write modus, verwalte ich selbst eine Locking-File.
Allerdings bekomm ich die File nicht gelöscht. Hast du dafür eine Idee bzw. das auch schon versucht?
GRuß
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
thor_norsk Datenbank: Apache Derby Datenbankprogrammierung 6
O apache derby in eclipse für Datenbanken einbauen Datenbankprogrammierung 3
F Derby Datenbankprogrammierung 5
T importierte Derby DB währen der Laufzeit einlesen Datenbankprogrammierung 2
L Derby/JavaFX Fehlermeldung Datenbankprogrammierung 3
R findet Derby.DB nicht !? Datenbankprogrammierung 5
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
J Derby/JavaDB Datenbankanbindung Eclipse und Derby Datenbankprogrammierung 7
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
T Datenbankfeld in Derby 255 Zeichen Datenbankprogrammierung 3
M Derby/JavaDB Derby SQL Insert mit AUTO_INCREMENT, welche ID wurde vergeben? Datenbankprogrammierung 6
C Derby auf Server Datenbankprogrammierung 6
R derby : in squirrel url zu db von tomcat Datenbankprogrammierung 4
H Derby: SYSCS_UTIL.SYSCS_EXPORT_QUERY mit String Abfrage in wehre-Klausel nicht möglich Datenbankprogrammierung 3
H Probleme mit Unicodedarstellung in Derby DB Datenbankprogrammierung 1
S Dringend Netbeans Derby DB random() function Datenbankprogrammierung 6
M HSQLDB oder DERBY - warum SCRIPT Datei? Datenbankprogrammierung 0
B Derby/JavaDB Einrichten der Derby DB / JAVA DB Datenbankprogrammierung 2
A Eclipse + Derby + Delete Row Datenbankprogrammierung 3
D Derby Datenbank bei Export zu JAR-Datei nicht möglich Datenbankprogrammierung 8
D Embedded Derby Datenbank Datenbankprogrammierung 4
reibi Derby/JavaDB Derby DB löschen Datenbankprogrammierung 5
L Derby Datenbank speichert nicht Datenbankprogrammierung 9
N Query für Derby DB mit Enterbrise Bean Datenbankprogrammierung 4
S Derby/JavaDB Derby zu MySQL Datenbankprogrammierung 6
H Derby/JavaDB Eine verschlüsselte Derby-Datenbank wieder entschlüsseln Datenbankprogrammierung 4
G Derby/H2 Welches u. Wie installieren/verwenden? Datenbankprogrammierung 10
L Derby/JavaDB Derby macht Probleme Datenbankprogrammierung 4
zilti Derby/JavaDB EclipseLink und Derby: "Abschneidefehler" bei @Lob Datenbankprogrammierung 2
B Derby Databankabfrage liefert Ergebnisse nicht korrekt Datenbankprogrammierung 2
H Derby SQL-Abfragen in Datei abspeichern Datenbankprogrammierung 2
H Flat Files in Derby importieren Datenbankprogrammierung 3
reibi Derby/JavaDB Derby russty manager deaktivieren Datenbankprogrammierung 3
L Derby Dezimal-Spalte die Größe ändern Datenbankprogrammierung 2
D PostgreSQL vs Firebird vs Derby Datenbankprogrammierung 12
P Zugreifen auf Derby Datenbank mit java (ÜBERARBEITET) Datenbankprogrammierung 2
R Lokale Derby in einer JPA-Anwendung Datenbankprogrammierung 3
M Derby insert, ID auslesen Datenbankprogrammierung 3
J Derby Datenbankprogrammierung 7
S Derby Datenbank "offline" und "online" Datenbankprogrammierung 5
L Apache Derby Management-Tool Datenbankprogrammierung 3
A JavaDB(Derby) als ODBC-Datenquelle eintragen Datenbankprogrammierung 4
T Derby und Foreign Keys Datenbankprogrammierung 4
I JAVADB (Derby) OneToMany Datenbankprogrammierung 2
T Zugriff auf Derby-Datenbank will einfach nicht klappen Datenbankprogrammierung 22
M Gelöst: JavaDB - Derby Inhalt in Jar Datei speichern Datenbankprogrammierung 5
O Derby/JavaDB anwenden von Regular Expressions Datenbankprogrammierung 2
O Derby Performance Probleme? Datenbankprogrammierung 4
H Derby in Java 6 direkt integriert? Wie nutzt man das? Datenbankprogrammierung 3
Z derby abfrage von einem Timestamp Datenbankprogrammierung 2
GilbertGrape Allgemeines zu Derby Datenbankprogrammierung 7
M JavaDB/Derby: Tabellen erstellen Datenbankprogrammierung 8
G Derby Anleitung? Datenbankprogrammierung 1
H Migration von MySQL auf Derby Datenbankprogrammierung 2
B Java Derby Datenbank mit CLOB & BLOB Datenbankprogrammierung 5
vogella Java DB (Derby) Size Datenbankprogrammierung 12
J Derby Cursor Problem Datenbankprogrammierung 2
R Wie stabil ist Derby? Datenbankprogrammierung 2
P derby datenbank Datenbankprogrammierung 2
D Installation von Apache Derby in Eclipse Datenbankprogrammierung 1
P DERBY vs HSQLDB (Vor- Nachteile) Datenbankprogrammierung 3
B Cloudscape/Derby NetworkServer als JDBCRealm Datenbank Datenbankprogrammierung 2
P Apache DERBY - Datanbank erstellen Datenbankprogrammierung 2
M Logikfrage: Auf zweites Result warten Datenbankprogrammierung 2
H Daten aus einem DBS in ein zweites DBS überführen ? Datenbankprogrammierung 2
lumo HIbernate: Could not read mapping document Datenbankprogrammierung 9
D java.net.SocketTimeoutException: Read timed out Datenbankprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben