Hallo zusammen!
Ich habe ein Problem, das mich etwas verwirrt und ich befürchte, die Funktionsweise von Cajo nicht ganz begriffen zu haben. Für ein kleines Projekt habe ich einen Cajo Client und Server geschrieben. Der Server stellt einen Service zur Verfügung, von dem wiederum eine Methode dazu dienen soll, ein Adressobjekt in eine db4o-Datenbank zu schreiben.
Beim Start des Servers wird meine Datenbankverbindung initialisiert, d.h. ich rufe "getInstance()" meiner als Singleton konzipierten DB-Helferklasse auf. Dabei wird die entsprechende DB-Datei in einem Server-Unterverzeichnis geöffnet. So weit, so gut.
Wenn ich nun auf dem Client die Methode "storeAdress" aufrufe, die vom Server bereitgestellt wird, soll folgendes geschehen:
Nun dachte ich mir:"In der ersten Zeile wird das vom Server instanziierte Helferklassenobjekt zurückgegeben." Das ist aber nicht der Fall und es hat zur Folge, dass noch eine Instanz des Singletons(im Kontext des Clients?!) erzeugt und die Datenbank neu geöffnet wird. Allerdings so, als würde sich das Objekt auf dem Client befinden - es sucht auch nicht mehr in einem Unterverzeichnis des Servers, sondern des Clientprogramms nach der DB-Datei zum Öffnen.
Baut Cajo das Objekt meiner Helferklasse tatsächlich noch ein zweites Mal lokal? Wie kann ich in dem Fall dafür sorgen, dass das Serverprogramm und der Cajo-Client auf die selbe Objektinstanz zugreifen können?
Ich wäre für nen denkfördernden Klapps auf den Hinterkopf sehr dankbar
Beste Grüße,
David
Ich habe ein Problem, das mich etwas verwirrt und ich befürchte, die Funktionsweise von Cajo nicht ganz begriffen zu haben. Für ein kleines Projekt habe ich einen Cajo Client und Server geschrieben. Der Server stellt einen Service zur Verfügung, von dem wiederum eine Methode dazu dienen soll, ein Adressobjekt in eine db4o-Datenbank zu schreiben.
Beim Start des Servers wird meine Datenbankverbindung initialisiert, d.h. ich rufe "getInstance()" meiner als Singleton konzipierten DB-Helferklasse auf. Dabei wird die entsprechende DB-Datei in einem Server-Unterverzeichnis geöffnet. So weit, so gut.
Wenn ich nun auf dem Client die Methode "storeAdress" aufrufe, die vom Server bereitgestellt wird, soll folgendes geschehen:
Java:
//diese Methode wird vom Client remote aufgerufen
public void storeAddress(Address a){
DBConnector dbc=DBConnector.getInstance();//DBConnector ist die Singleton-DB-Helferklasse
dbc.storeAddressObject(a);
}
Baut Cajo das Objekt meiner Helferklasse tatsächlich noch ein zweites Mal lokal? Wie kann ich in dem Fall dafür sorgen, dass das Serverprogramm und der Cajo-Client auf die selbe Objektinstanz zugreifen können?
Ich wäre für nen denkfördernden Klapps auf den Hinterkopf sehr dankbar
Beste Grüße,
David
Zuletzt bearbeitet: