Hallo,
ich bin durch zufall auf dieses Forum gestoßen und hoffe, ihr könnt mir helfen:
Ich bin gerade dabei eine Anwendung auf zwei Rechnern mittels RMI kommunizieren zu lassen.
Auf einem Rechner melde ich ein Objekt a in der Registry an (wobei a INstanz der Klasse A). Dieses Objekt anhält eine Hashmap der Form (ID, b) wobei b eine Instand der Klasse B ist.
Sowohl die Interfaces von a und b sind von Remote abgeleitet, da ich auf dem andern Rechner keine Kopien von b haben möchte, sondern per Fernzugriff drauf zugreifen mag.
Die Implementierungen erweitern UnicastRemoteObject und implementieren die Schnittstellen.
So weit so gut.
Wenn ich mir nun von dem andern Rechner das Objekt a per Fernzugriff hole, sind in diesem alle bis dahin in der Hashmap gespeicherten Objekte b' vorhanden. Füge ich nun aber in die Hashmap neue Elemente während der Laufzeit ein und greife danach per Fernzugriff auf mein zuvor referenziertes Objekt a zu - so fehlen diesem diese Objekte in der Hashmap!
Irgendwie kommt mir das so vor, als wäre auf dem Rechner, welcher a in der Regesitry anmeldet zuvor eine Kopie von a gemacht wurde, die nun referenziert wird und forlglich nicht aktuell ist, wenn Änderungen am wirklichen Objekt a vorgenommen werden.
Wenn ich nach jeder Änderung an a am Server ein rebind mache, dann hat der Client die Aktuellen Daten.
Das ist aber natürlich umständlich, da man ein rebind schnell mal vergisst, wenn man es überall machen muss, wo man am Server was an a ändert. Wieso ändere ich denn nicht autormatisch das Objekt in der Registry? Ist dieses jedesmal neu anmelden überhaupt sinnvoll oder mache ich hier etwas falsch?
Schonmal vielen Dank!
MfG Kai
ich bin durch zufall auf dieses Forum gestoßen und hoffe, ihr könnt mir helfen:
Ich bin gerade dabei eine Anwendung auf zwei Rechnern mittels RMI kommunizieren zu lassen.
Auf einem Rechner melde ich ein Objekt a in der Registry an (wobei a INstanz der Klasse A). Dieses Objekt anhält eine Hashmap der Form (ID, b) wobei b eine Instand der Klasse B ist.
Sowohl die Interfaces von a und b sind von Remote abgeleitet, da ich auf dem andern Rechner keine Kopien von b haben möchte, sondern per Fernzugriff drauf zugreifen mag.
Die Implementierungen erweitern UnicastRemoteObject und implementieren die Schnittstellen.
So weit so gut.
Wenn ich mir nun von dem andern Rechner das Objekt a per Fernzugriff hole, sind in diesem alle bis dahin in der Hashmap gespeicherten Objekte b' vorhanden. Füge ich nun aber in die Hashmap neue Elemente während der Laufzeit ein und greife danach per Fernzugriff auf mein zuvor referenziertes Objekt a zu - so fehlen diesem diese Objekte in der Hashmap!
Irgendwie kommt mir das so vor, als wäre auf dem Rechner, welcher a in der Regesitry anmeldet zuvor eine Kopie von a gemacht wurde, die nun referenziert wird und forlglich nicht aktuell ist, wenn Änderungen am wirklichen Objekt a vorgenommen werden.
Wenn ich nach jeder Änderung an a am Server ein rebind mache, dann hat der Client die Aktuellen Daten.
Das ist aber natürlich umständlich, da man ein rebind schnell mal vergisst, wenn man es überall machen muss, wo man am Server was an a ändert. Wieso ändere ich denn nicht autormatisch das Objekt in der Registry? Ist dieses jedesmal neu anmelden überhaupt sinnvoll oder mache ich hier etwas falsch?
Schonmal vielen Dank!
MfG Kai