Hallo zusammen,
für meine GUI erhalte ich Daten über RMI von einem Server. Im worst case 60 mal/Sekunde.
Wenn der Server läuft, dann funktioniert alles wie es soll. Starte ich allerdings das GUI ohne dass der Server läuft, dann wird alles extrem langsam. Für diesen Fall habe ich eine Exception Klasse, die alle notwendigen Daten bereitstellt damit das Programm fehlerfrei weiterlaufen kann.
Ich vermute, dass der Versuch eine Verbindung aufzubauen einfach zu lange dauert, und in diesem Zeitraum das Programm nichts anderes mehr macht. Aber mir fällt gerade keine Möglichkeit ein das zu umgehen?
Zweite Frage: Wenn ich das Serverprogramm per Menüleiste ("x") schließe, dann läuft trotzdem noch irgend ein Prozess weiter. Hinterher muss ich dann in der Netbeans Leiste nochmal "x" anklicken damit das Programm komplett geschlossen ist. Woran könnte dennn das liegen?
Hier mal der Code für den Serverzugriff (der wird vom GUI über AnimationTimer aufgerufen, die die Daten dann darstellen):
für meine GUI erhalte ich Daten über RMI von einem Server. Im worst case 60 mal/Sekunde.
Wenn der Server läuft, dann funktioniert alles wie es soll. Starte ich allerdings das GUI ohne dass der Server läuft, dann wird alles extrem langsam. Für diesen Fall habe ich eine Exception Klasse, die alle notwendigen Daten bereitstellt damit das Programm fehlerfrei weiterlaufen kann.
Ich vermute, dass der Versuch eine Verbindung aufzubauen einfach zu lange dauert, und in diesem Zeitraum das Programm nichts anderes mehr macht. Aber mir fällt gerade keine Möglichkeit ein das zu umgehen?
Zweite Frage: Wenn ich das Serverprogramm per Menüleiste ("x") schließe, dann läuft trotzdem noch irgend ein Prozess weiter. Hinterher muss ich dann in der Netbeans Leiste nochmal "x" anklicken damit das Programm komplett geschlossen ist. Woran könnte dennn das liegen?
Hier mal der Code für den Serverzugriff (der wird vom GUI über AnimationTimer aufgerufen, die die Daten dann darstellen):
Java:
public static RMI rmiConnect() {
try{
Registry reg = LocateRegistry.getRegistry("127.0.0.1", 1099);
RMI rmi = (RMI) reg.lookup("server");
return rmi;
} catch(RemoteException | NotBoundException e){
System.out.println(e);
return null;
}
}
public static Map<String, ValuePair> getAllSignals(String vin, String filter) throws RemoteException, IOException {
try {
RMI rmi = rmiConnect();
Map<String, double> signals = rmi.getAllSignals();
return (Map<String, double>) signals;
} catch (Exception ex) {
ExceptionsHandling exception = new ExceptionsHandling();
Map<String, double> list = exception.failedSignalsQuery();
return list;
}
}