# RMI notifications?



## michl_za (4. Aug 2011)

Hi @all,

momentan arbeite ich mit einfachen RMI calls.

Client:

```
RemoteObj myRemoteObj = (RemoteObj) Naming.lookup(REMOTE_NAME);
```

Server:

```
LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
Naming.rebind(REMOTE_NAME, new RemoteObj /* ... */);
```

(nur damit jedem entsprechende Code-Zeilen ins Gedächtnis kommen)

Alles funktioniert eigentlich wunderbar.
Ich frage mich allerdings, wie Bescheid bekomme, wenn das Remote-Objekt nicht mehr verfügbar ist, z.B. weil die Remote-Applikation geschlossen wurde. Natürlich bekomme ich eine "RemoteException", und ich weiß Bescheid, dass die Verbindung getrennt wurde. Aber ich zeige den Status auch in meiner GUI an, und ich will nicht ständig "pollen", ob alle ok ist. Gibt es keinen Benachrichtigungsmechanismus, wo man sich registrieren kann? Ich bräuchte die Nachricht, dass das RemoteObj nicht mehr verfügbar ist.

Wenn ja, bitte kurz ein paar Stichwörter, da ich leider nichts finde 
Wenn nein, danke, aber was würdet ihr machen bzw. was macht ihr?

Vielen Dank!


----------



## SlaterB (4. Aug 2011)

du kannst einen separaten Thread laufen lassen, der eine Anfrage zum Server schickt, die dort ewig bzw. eine bestimmte Zeit wartet,
und bei Fehler gewiss beendet wird, oder bei sonstigen wichtigen Update auf normalen Wege,

so habe ich das im Moment, ich hoffe dass die langen Verbindungen keine Probleme machen, 
ist bei mir auf eine Minute begrenzt da damit auch die Server-Uhrzeit übertragen wird 

bei vielen Clients gleichzeitig wohl noch unpraktikabler


----------



## turtle (4. Aug 2011)

ich kenne keinen automatischen Callback per RMI. 

Aber Du kannst ja ein Client-Objekt zum Server schicken,auf dem der Server periodisch eine Methode aufruft, quasi als Heartbeat. 

Solltest mal unter "client side callback" googlen. 

Habe ich allerdings noch nicht benötigt, da ja beim nächsten Aufruf des Client eh eine Exception kommt. Und bei wirklich vielen Clients machts meiner Meinung nach eh keinen Sinn.


----------

