Re: [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- From: Wanja Gayk <brixomatic@xxxxxxxxx>
- Date: Tue, 5 Sep 2006 23:57:52 +0200
blackdrag@xxxxxx said...
wenn du 2x einen Server startest, der die gleiche Datei benutzen soll...
kein Wunder würde ich behaupten. Erstmal musst du einen Benutzer
einrichten, und dann als Client verbinden.
Nunja, ich hatte naiv gedacht, dass DB4O selbst erkennt, ob schon ein
Server läuft..
Client 1:
ObjectServer server = Db4o.openServer(DB_FILENAME, 12045);
server.grantAccess("Wanja","Gayk")
db = server.openClient()
Client 2:
db = Db4o.openClient("localhost",12045,"Wanja","Gayk")
so in der Art zumindest. Siehe auch Docu ;)
Ich werde wohlnoch mal unter CLient/Server nachschlagen müssen.. auf
den Trichter bin ich eben ja noch nicht gekommen.
Danke für den Hinweis.
autsch... mit den native queries kenne ich mich nicht aus. Allerdings:
Exception in thread "AWT-EventQueue-0"
com.db4o.ext.ObjectNotStorableException: Add constructor that won't
throw exceptions, configure constructor calls, or provide a translator
to class 'java.lang.Object' and make sure the class is deployed to the
server with the same package/namespace + assembly name.
sagt die Meldung doch viel. Hilft das nciht weiter?
Nö. Eigentlich hilft die mir überhaupt nicht. Weder war klar welches
Objekt gemeint war, noch hatte ich einen Kontruktor der Exceptions
schmeißt.
[...]
Und das ganze findet in meinem Program hier statt:
<T> List<T> query(final Predicate<T> predicate){
if(predicate == null){
throw new IllegalArgumentException("predicate is null");
}
final List<T> result;
synchronized(dbLock){
result = db.query(predicate); //<--- !! Boom!
}
assert result != null : "query returned null instead of an empty list";
return result
}
Nun steh' ich endgültig im Wald....
hast du es mal ohne die IllegalArgumentException versucht? Ohne assert
am besten auch gleich... und überhaupt... wie soll diese Querie denn
nach Soda abgebildet werden? ;) ausserdem scheint mir dein query im
query äusserst ungesund zu sein
Das ist keine Query in Query, sondern was du dort siehst ist lediglich
eine Methode, die ein Predcate erwartet und dieses der dem
Objektcontainer weitergibt.
Das ist praktische das Gleiche,als würde ich schreiben:
result = db.query(new Predicate<T>(){
//bla
});
Nur dass das Predicate eben nicht in dieser Klasse erzeugt wird, sondern
in einer anderen (der die die Queries implementiert).
Gruß,
-Wanja-
--
Die "Difference Engine" ist ein Muster für Forschung und Entwicklung in
England: Sie war ihrer Zeit weit voraus. Ihr Nachfolger, die "Analytical
Engine", ist ein noch viel größeres Vorbild für die britische
Entwicklung: Sie wurde überhaupt nie gebaut.
.
- Follow-Ups:
- Re: [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- From: Jochen Theodorou
- Re: [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- References:
- [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- From: Wanja Gayk
- Re: [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- From: Wanja Gayk
- Re: [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- From: Jochen Theodorou
- [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- Prev by Date: Re: [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- Next by Date: Re: [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- Previous by thread: Re: [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- Next by thread: Re: [DB4O] Locking, gleichzeitiger Lesezugriff aus zwei VMs
- Index(es):
Relevant Pages
|
Loading