Server Problem

Status
Nicht offen für weitere Antworten.
M

Michael2345

Gast
Hallo
Ich habe ein großes Arbeitsspeicher Problem und weis nicht wie ich das beheben kann.

Problembeschreibung:
Ich habe einen Multithreading Server geschrieben der auch ohne Probleme läuft, wenn nicht der Arbeitsspeicher immer voll laufen würde.
Ich weis jetzt kommt „Speicherleck" aber ich habe die letzten 5 Tage nichts anderes gemacht um nach
irgendwelchen
Variablen Gesucht die ein Leck verursachen können.
Ich habe mit Profiler nach Lecks gesucht jedoch ohne Erfolg.
Dann habe ich mein Server soweit abgespeckt das eine Client sich nur noch anmelden kann aber trotzdem
geht der Arbeitsspeicher hoch und das kann ich so lange machen bis ich ein Heap Space Error bekomme.
Code:
   public void runServers() throws ClassNotFoundException {
        /* ServerSocket */
        System.out.println("runServers darf nur einmal ausgelöst werden");
        try {
     
            ServerSocket sock = new ServerSocket(PORT);
            System.out.println("EchoServerThread bereit für Verbindungen");
 
            while(true) {  /* Starten eines neuen Clients */
                try { 
                 Socket  clientSocket = sock.accept();
                 Handler he = new  Handler(clientSocket); 
                 he.start();

               } catch (IOException e) {
                   System.out.println("IO Exception ");
               }          
            }     
        } catch (IOException e) {
            System.err.println("Konnte nicht verbinden: " + e);
            System.exit(-1);
        }
 
    }


und der Handler


Code:
   class Handler extends Thread {

        Socket sockes;
        int indexUser = 0;
        /* Setzen der Systemzeit */
        long la = System.currentTimeMillis();

        Handler(Socket s) {
            sockes = s;
            //  fangen = sock;
            System.out.println("Socket =" + sockes.getPort());

        }

        public void run() {
            try {
                /* Lesen vom Clientsocket */
                System.out.println("Hier ich und du");
                /* Abbruch der while-Schleife, wenn done == true */

                boolean done = false;
                int za = 0;
                String name = null;
                String line = null;             
                String  passwort = null;
              
                is = new BufferedReader(new InputStreamReader(sockes.getInputStream()));
                /* Schreiben auf ClientSocket */
                PrintWriter os = new PrintWriter(sockes.getOutputStream(), true);

                while (!done) {
                    if (!done) {
                        try {
                           line = is.readLine();      
                            
                        } catch (Exception e) {
                            done=true;
                        }
                   
                        if (line == null) {
                            done = true;
                        } else {
                            System.out.println("User wird Angemeldet !!! Name =" + line.toString());
                            String[] benutzer = line.split(" ");
                            Statement stmt = Connector.getInstance().getConnection().createStatement();

                            ResultSet rset = stmt.executeQuery("SELECT bname, bpasswort FROM anwender WHERE bname='" + benutzer[0]+ "' and bpasswort='" + benutzer[1] + "'");
                            while (rset.next()) {
                                /* Annehmen von name und passwort */
                                name = rset.getString(1);
                                passwort = rset.getString(2);
                                System.out.println("passwort anmeldung OK =" + rset.getString(2));                              
                            }
                         }                        
                     is.close();
                    }                    
                }
              line=null;

            } catch (IOException ex) {
                Logger.getLogger(Echo_Aktuall.class.getName()).log(Level.SEVERE, null, ex);
            }catch (NullPointerException ex) {
                try {
                    System.out.println("Abgefangen");
                    is.close();
                } catch (IOException ex1) {
                    Logger.getLogger(Echo_Aktuall.class.getName()).log(Level.SEVERE, null, ex1);
                }
            }
            catch (SQLException ex) {
                Logger.getLogger(Echo_Aktuall.class.getName()).log(Level.SEVERE, null, ex);
            } 
        }
    }

wo hier ein Leck sein soll weis ich nicht.
vielleicht hat jemand von euch eine Lösung.

Gruß Michael
 

Ebenius

Top Contributor
Hab nur kurz draufgeguckt und weiß nicht, ob's Dein Problem löst, aber in der Schleife unten musst Du auf jeden Fall (in dieser Reihenfolge)
  • ResultSet schließen
  • Statement schließen
  • Connection schließen
Grüße, Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Server-Client IO Problem Netzwerkprogrammierung 6
L Socket Problem mit Server Netzwerkprogrammierung 1
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
T Socket Server starten Thread Problem Netzwerkprogrammierung 12
B Client/Server Connection Problem Netzwerkprogrammierung 2
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
D Apache CXF, JAX-WS Problem bei Arrays - einfacher Server Netzwerkprogrammierung 2
X Problem mit Server-Client-Kommunikation Netzwerkprogrammierung 14
K Client - Server Problem Netzwerkprogrammierung 16
T RMI Problem Client-Server Netzwerkprogrammierung 2
J Socket Client - Server Problem Netzwerkprogrammierung 4
D Client Server Problem, Methode readline() löst SocketException "Connection reset" aus Netzwerkprogrammierung 8
J Client server problem Netzwerkprogrammierung 3
S Problem bzgl. Sockets / Server-Client-Struktur Netzwerkprogrammierung 3
M Problem mit Server Netzwerkprogrammierung 5
N Socket Java server c# client problem Netzwerkprogrammierung 7
W vista / win server 2003 netzlaufwerk problem Netzwerkprogrammierung 4
K Problem Performance Client-Server Netzwerkprogrammierung 5
W Problem mit Server/Client mit ObjectOutputStream Netzwerkprogrammierung 5
S RMI-Problem: Nur ein Server start möglich. Netzwerkprogrammierung 40
S Client-Server Chat Problem nur im lokalen Netztwerk Netzwerkprogrammierung 23
U problem mit verbindung zu einem irc server Netzwerkprogrammierung 3
K Client-Server Problem Netzwerkprogrammierung 2
G Problem bei Server verbindung : ( Netzwerkprogrammierung 8
G Problem mit Client-Server Kommunikation Netzwerkprogrammierung 4
S Client/Server Problem Netzwerkprogrammierung 2
A Client Server Problem Netzwerkprogrammierung 37
G Problem bei Objekt senden von server zu client Netzwerkprogrammierung 6
J Kleines Problem mit Chat Server Netzwerkprogrammierung 2
L ganz ganz einfach Client/Server [Problem] Netzwerkprogrammierung 2
S problem mit server Netzwerkprogrammierung 2
R Java Applikation als Client ,Servlet als Server: Problem? Netzwerkprogrammierung 3
V Client Server Problem, empängt oder sendet nichts Netzwerkprogrammierung 4
M HttpUrlConnection + Client/Server Problem Netzwerkprogrammierung 2
S Problem mit der Client Server Netzwerkprogrammierung 6
S Habe ein Problem mit Sockets -> Client Server Netzwerkprogrammierung 2
G Datenautausch Client/Server , hab da ein kleines problem Netzwerkprogrammierung 3
S RMI Server Basic Problem Netzwerkprogrammierung 13
F http Post auf einen Grafana Server Netzwerkprogrammierung 3
W Socket Server -> lesen von / schreiben zu php-script Netzwerkprogrammierung 6
E Server mit GUI Netzwerkprogrammierung 4
E FTP FTPS Server gibt Fehlernachricht "522 SSL/TLS required on the data channel" zurück Netzwerkprogrammierung 1
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
Eigenen Rechner als Server? Netzwerkprogrammierung 16
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
J Datei Download vom Server Netzwerkprogrammierung 8
izoards Mehrere TCP Verbindungen auf einen Server [alles Local] Netzwerkprogrammierung 2
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
J Client-Server und SOAP Netzwerkprogrammierung 23
K Threads/Server/telnet Fehler Netzwerkprogrammierung 2
J Multithreaded-Server Netzwerkprogrammierung 21
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
L30nS RMI RMI-Server kann Dialog nicht volkommen anzeigen Netzwerkprogrammierung 2
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
L Server-Socket liest Input-Stream nicht Netzwerkprogrammierung 5
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Kann ein Socket server 2 dimensionale Arrays empfangen und versenden? Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
F NodeJs-Server auf Firebase hosten ? Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
H HTTP Glassfish (v5) Application Server - Bibliothek zur Verfügung stellen Netzwerkprogrammierung 4
B HttpClient - Server (Jetty) - getInputStream - EOF Netzwerkprogrammierung 3
P TCP-Server Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
F Server für Java Applikationen Netzwerkprogrammierung 16
H Einfacher Server funktioniert nicht Netzwerkprogrammierung 1
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
T HTTPS-Requests an Server: POST-Parameter kommen nicht an Netzwerkprogrammierung 5
L Socket Wie kann ich checken ob ein User eine Nachricht per Outputstream an den Server gesendet hat? Netzwerkprogrammierung 1
T Jetty Server LOGGING Netzwerkprogrammierung 1
L Strings an Server senden und in MYSQL speichern? Netzwerkprogrammierung 3
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
T server empfängt nur 1 Buchstaben vom String Netzwerkprogrammierung 1
S Spiel mit Server programmieren Netzwerkprogrammierung 2
N Post u Head Request an Server Netzwerkprogrammierung 4
J Socket Ein Chat Server Tutorial Netzwerkprogrammierung 8
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
J Socket Tutorial zu Multiplayer Server schreiben? Netzwerkprogrammierung 5
S Java Chat Server Netzwerkprogrammierung 8
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25

Ähnliche Java Themen

Neue Themen


Oben