JavaFX RMI extrem langsam wenn Server nicht läuft

EvoLutionX

Mitglied
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):
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;
      }
 }
 

EvoLutionX

Mitglied
So ich bin mittlerweile schon etwas weiter gekommen.
Die einzige Möglichkeit ist wohl die Abfrage in einen seperaten Thread auszulagern. Was ich also vor habe ist, die Methode rmiConnect() in einem seperaten Thread laufen zu lassen.
Das funktioniert so weit auch und mein Programm läuft wie gewünscht.

Folgender Code liefert auch das gewünschte Ergebnis:
Java:
 public static void serverLookup() {   
   Thread t1 = new Thread(new Runnable() {
            public void run() {
                try {
                    System.out.println("Current thread: " + Thread.currentThread());
                    rmiConnect();
                } catch (IOException ex) {
                    Logger.getLogger(ServerQuery.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        t1.start();
    }

Das Problem:
Die Ausgabe des Current Threads liefert nach einiger Zeit:
Code:
Current thread: Thread[Thread-550,5,main]
Die Nummer wird also immer größer.
Heißt das jetzt, dass da immer ein neuer Thread erstellt wird? Ich will eig. nur einen Thread t1 erstellen in dem das immer gemacht wird.
 

EvoLutionX

Mitglied
muss ich aber dann, wenn ich beim Start keine Serververbindung habe, weil ich ja immer wieder überprüfen muss ob die Serververbindung dann irgendwann steht.
 

mrBrown

Super-Moderator
Mitarbeiter
Anstatt durchgängig neue Threads zu starten, kannst du einfach den einen so lange laufen lassen, bis die Verbindung hergestellt wurde.

Einfach ne neue Methode, die den try-catch-Block in einer Schleife laufen lässt, und diese im Thread ausführen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Liste mit Map abgleichen extrem langsam Allgemeine Java-Themen 6
C Darstellung der Liste bei vielen Daten extrem langsam Allgemeine Java-Themen 11
W sin und cos bei hohen Werten extrem langsam Allgemeine Java-Themen 12
E mit extrem langen Zahlen (als Zeichneketten) arbeiten Allgemeine Java-Themen 4
F Kleingerechnete Bilder extrem dunkel Allgemeine Java-Themen 2
A testen ob Primzahl dauert bei größeren zahlen extrem lange Allgemeine Java-Themen 8
P rechnen mit extrem grossen zahlen Allgemeine Java-Themen 2
R JDK installieren OpenJDK-Aufruf sehr langsam Allgemeine Java-Themen 4
K Arbeitsspeicher wird langsam voll Allgemeine Java-Themen 6
Thallius String erzeugen sehr langsam Allgemeine Java-Themen 16
S JNLP startet seit 1.8.0_31 sehr langsam + Windows-Systemverzeichnis Allgemeine Java-Themen 3
P Eclipse langsam/unbrauchbar bei größeren Quelldateien? Allgemeine Java-Themen 8
W Threads NullPointer: Konstruktor "zu langsam"? Allgemeine Java-Themen 3
M Externe Jar sehr langsam Allgemeine Java-Themen 23
C JEditorPane langsam großes HTML Allgemeine Java-Themen 8
J Laden von JAR Files geht ohne ADMIN Rechte sehr langsam Allgemeine Java-Themen 6
H Kopieren sehr langsam Allgemeine Java-Themen 5
B Cipher.getInstance Aufruf sehr langsam Allgemeine Java-Themen 2
B util.Timer zu langsam? Allgemeine Java-Themen 3
W Java Applet läuft langsam Allgemeine Java-Themen 2
B JavaPanels langsam schliessen und öffne Allgemeine Java-Themen 6
L Java Debugmodus ist unerträglich langsam! Allgemeine Java-Themen 30
L Java 1.5 - Anwendung unter 1.6 JRE sehr langsam geworden Allgemeine Java-Themen 8
H JID3 + vdheide schreiben zu langsam Allgemeine Java-Themen 11
M String zusammensetzen->sehr langsam Allgemeine Java-Themen 3
T ObjectOutputStream#writeObject() zu langsam. Allgemeine Java-Themen 13
N Berechnungsthreads zu langsam. Allgemeine Java-Themen 2
G Java Socket langsam unter Linux Allgemeine Java-Themen 21
T String.split() - viel zu langsam Allgemeine Java-Themen 9
T [SVNKit] Commit sehr langsam. Allgemeine Java-Themen 7
G Domainen crawlen & Domainnamen listen -> LANGSAM! Allgemeine Java-Themen 19
M Performance enorm langsam Allgemeine Java-Themen 26
H java.util.Vector langsam ? Allgemeine Java-Themen 5
T Jtree zu langsam beim klappen Allgemeine Java-Themen 8
F JAVA Applikationen starten sehr langsam Allgemeine Java-Themen 14
D Datei öffnung sehr langsam Allgemeine Java-Themen 17
H Verschlüsselungsprogramm zu langsam Allgemeine Java-Themen 12
G Neue Warenwirtschaft aber sehr langsam! Allgemeine Java-Themen 3
T Bilder bearbeiten unglaublich langsam Allgemeine Java-Themen 9
H Entpacken sehr langsam Allgemeine Java-Themen 10
C Thread zu langsam ==> kann doch nicht sein oder? Allgemeine Java-Themen 9
R Double Buffering zu langsam Allgemeine Java-Themen 11
D ganze packete importieren --> langsam? Allgemeine Java-Themen 9
G Funktion, die langsam wächst Allgemeine Java-Themen 7
N Lwjgl 3d Objekt wird schmaler, wenn es sich dreht Allgemeine Java-Themen 0
berserkerdq2 Habe ein svg bild, kann ich das zu svg koordinaten umrechnen, damit ich den Umriss zeichnen kann? Wenn ja wie? Allgemeine Java-Themen 1
berserkerdq2 Wenn ich einfach eine GIF in den Scenebuilder als Bild reinpacke, wird das dann asl Gif angezeigt Allgemeine Java-Themen 1
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
I OpenPDF erzeugt riesige PDFs, wenn Grafiken über PdfGraphics2D#drawImage gezeichnet werden Allgemeine Java-Themen 1
Viper13125 Eclipse Hängt sich auf, wenn ich SimpelDateFormat drin lasse Allgemeine Java-Themen 2
berserkerdq2 Wenn ich eine Methode nur jede 50ms ausführen will, wie mach ich das? Allgemeine Java-Themen 4
M Probleme bei Eclipse wenn ich entpacke Allgemeine Java-Themen 15
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
P Summieren wenn Allgemeine Java-Themen 4
E RMI NULL-Pointer-Exeception wenn der RMI-Proxy eine Methode deligiert Allgemeine Java-Themen 2
D Cursor unsichtbar, wenn Kontextmenü aufgerufen wird Allgemeine Java-Themen 5
W Thread sleep 30 sekunden - wenn keine Antwort bis dahin neu senden Allgemeine Java-Themen 2
H Runtime reagiert erst wenn Programm abbricht Allgemeine Java-Themen 1
J Jasper ireport - wieso beendet die Anwendung wenn ich die Preview schließe Allgemeine Java-Themen 1
N Maven ObjectMapper Error wenn das File gespeichert wird Allgemeine Java-Themen 0
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
S Wenn mehr als die Hälfte Großgeschrieben ist. Allgemeine Java-Themen 2
D mouseWheelMoved => erst reagieren, wenn für 1s das Mausrad nicht mehr benutzt wurde Allgemeine Java-Themen 4
L SetBounds wird vor dem Konstruktorcode aufgerufen - Wenn Startleiste links Allgemeine Java-Themen 1
T MEthodenauruf testen, wenn instanz erst erzeugt wird Allgemeine Java-Themen 0
DStrohma Input/Output KeyEvent nur verarbeiten wenn es ein "sichtbares" Zeichen ist? Allgemeine Java-Themen 1
S ExecutorService.invokeAll -- was passiert wenn einige Tasks schon ausgefuehrt wurden? Allgemeine Java-Themen 2
M CapsLock abfragen wenn Fenster wieder aktiviert wird Allgemeine Java-Themen 5
D Java Skript Wenn Dann in PDF Formular Allgemeine Java-Themen 2
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
L Input/Output Dateien erstellen, wenn ein JAR ausgeführt wird Allgemeine Java-Themen 13
S Strings gehen "kaputt" wenn ich in CVS ein und wieder auschecke. Allgemeine Java-Themen 2
E externen Prozess schließen, wenn Programm geschlossen wird Allgemeine Java-Themen 2
D mvc-Modell: wenn views voneinander wissen sollen Allgemeine Java-Themen 13
B Berechnung eines sinh abbrechen, wenn 16. Nachkommastelle sich nicht mehr ändert Allgemeine Java-Themen 7
B Benachrichtigung, wenn sich Benutzer am Betriebssystem anmeldet Allgemeine Java-Themen 9
T Set.contains() auch false wenn value == null? Allgemeine Java-Themen 4
N OutOfMemory nur wenn -Xmx gesetzt ist?! Allgemeine Java-Themen 6
Y Erfassen der Gesamtbreite, wenn 2 Bildschirme zur Verfügung. Allgemeine Java-Themen 3
V Was tun, wenn close() fehlschlägt? Allgemeine Java-Themen 3
G Was ist Ant und warum soll ich das brachen, wenn es IDEs gib Allgemeine Java-Themen 10
J Probleme wenn man keine serialVersionUID definiert? Allgemeine Java-Themen 27
G Aufruf einer Methode wenn Klasse noch nicht existiert Allgemeine Java-Themen 3
K FarbeA die moeglichst sichtbar ist wenn gezeichnetauf FarbeB Allgemeine Java-Themen 7
G wenn Button geklickt -> regelmäßig Aktion ausführen Allgemeine Java-Themen 7
ARadauer mit keylistener hören auch wenn frame nicht den focus hat Allgemeine Java-Themen 2
S Zweiten Thread erst starten wenn erster Thread beendet ist ? Allgemeine Java-Themen 6
B Datei erst öffnen, wenn EOF gesetzt ? Allgemeine Java-Themen 4
M PostgreSQL - nennenswerte Vorteile und wenn ja, wo? Allgemeine Java-Themen 3
P JTextField textfarbe schwarz auch wenn JTF deaktiviert ist Allgemeine Java-Themen 4
C Wenn long int zu klein Allgemeine Java-Themen 17
F CPU auslastung wenn Speicher mit -Xmx erhöht Allgemeine Java-Themen 4
M Wenn immer nur einer darf . Allgemeine Java-Themen 3
P Ist das möglich mit Java - wenn Nein wie sonst? Allgemeine Java-Themen 8
R Wenn Variable = wat ist Allgemeine Java-Themen 7
J RegEx: "wenn zeichen folgen ersetze x mit y, sonst mit Allgemeine Java-Themen 2
F Wenn ihr Performance wollt nehmt C++ Allgemeine Java-Themen 39
L Wenn String matches [-.,;:_°&] dann. Allgemeine Java-Themen 5
I JMF - feststellen wenn mp3 aus Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben