Avatar billede banielsen Nybegynder
02. februar 2005 - 13:14 Der er 16 kommentarer og
1 løsning

java.net.SocketException: Software caused connection abort: recv

Hej

Jeg får (nogle gange) følgende fejl når jeg kører et program jeg har lavet.

Programmet er et mindre administrativt system, opbygget omkring en client-server løsning.

databasen er en MySQL og ligger på serveren.

"hele" fejlen er:

java.net.SocketException: Software caused connection abort: recv failed
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(Unknown Source)
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1854)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2267)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2687)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1532)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1622)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:2273)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:2204)
        at com.mysql.jdbc.Statement.executeQuery(Statement.java:1138)

Nogle ideer om hvorfor?
Avatar billede arne_v Ekspert
02. februar 2005 - 13:16 #1
LAN eller WAN ?

Hvilken version af MySQL JDBC ?
Avatar billede banielsen Nybegynder
02. februar 2005 - 13:56 #2
LAN

"mysql-connector-java-3.1.3-beta-bin.jar"

(kan det være BETA-versionen der er en fejl i??)
Avatar billede arne_v Ekspert
02. februar 2005 - 14:54 #3
Hvilken version af MySQL server ?

Nej - MySQL beta'er plejer at være rimeligt gode.
Avatar billede banielsen Nybegynder
02. februar 2005 - 22:44 #4
MySQL-server version 1.4
Avatar billede arne_v Ekspert
02. februar 2005 - 22:45 #5
Du mener 4.1 ikke ?
Avatar billede banielsen Nybegynder
02. februar 2005 - 22:49 #6
Jeg var lige kommet til at kigge et forkert sted... sorry
Det er "mysql-4.1.3b-beta-win"
Avatar billede arne_v Ekspert
02. februar 2005 - 23:06 #7
De matcher vist godt nok.

Så er der de 2 x beta som mulig forklaring.

Har du mulighed for at prøve med ikke-beta versioner ?
Avatar billede banielsen Nybegynder
03. februar 2005 - 12:27 #8
ja, jeg har mulighed for at prøve med ikke-beta versioner
Er det sikkert at det er noget "udefra" og ikke en kodemæssig fejl?
Avatar billede arne_v Ekspert
03. februar 2005 - 15:11 #9
Absolut ikke.

Det er bare en af mulighederne.

Hvis du poster lidt kode, så kan vi også kigge på det.
Avatar billede banielsen Nybegynder
03. februar 2005 - 15:48 #10
Dette er klassen til forbindelse mellem program og databse:

public class DatabaseTilslutning
{
    protected Connection con;

    //Creates new DataBase
    public DatabaseTilslutning()
    {
        con=null;
        String driver = "org.gjt.mm.mysql.Driver";
        String database = "jdbc:mysql://localhost/FilmDB"; //database-navn (+ netværksplacering)
        open(driver, database);
    }

    public boolean open(String driver, String database)
    {           
        try
        {
            if(con==null)
            {
                Class.forName(driver).newInstance();

                con = DriverManager.getConnection(database, "", ""); //tager kontakt til databasen
            }
           
        }
        catch (SQLException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        catch (InstantiationException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        catch (IllegalAccessException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        catch (Exception e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        return true;
    }
   
    public void close() //lukker databsae-kontakten
    {
        if(con!=null)
        {
            try
            {
                con.close();
                con=null;
            }
            catch (SQLException e)
            {
                e.printStackTrace(System.out);
            }
        }
    }
}
Avatar billede arne_v Ekspert
03. februar 2005 - 19:08 #11
Den kode kan der vist vanskeligt være noget galt med.
Avatar billede banielsen Nybegynder
03. februar 2005 - 19:38 #12
Fejlen kan vel næsten ikke komme fra andre steder kan den?
Avatar billede arne_v Ekspert
05. februar 2005 - 21:36 #13
Den går jo galt i stmt.executeQuery ....

Men har du prøvet med ikke-beta versioner ?
Avatar billede banielsen Nybegynder
10. februar 2005 - 20:20 #14
Jeg har ikke fået prøvet med ikke-beta versioner

jeg har problemer med at få databasen flyttet med over i ikke-beta versionen. Jeg har kopieret mappen ind i data-mappen, men i mySQLadmin kan jeg ikke se databasen og kan heller ikke connecte til den...
Avatar billede banielsen Nybegynder
20. februar 2005 - 12:32 #15
Nu har jeg fået prøvet med ikke Beta versioner - det virker desværre stadig ikke

(sorry for den lange svartid - har været på ferie)

Jeg kan lige poste koden hvor fejlen opstår... men den del af koden virker jo nogle gange (da fejlen jo ikke kommer hver gang)
Avatar billede banielsen Nybegynder
20. februar 2005 - 12:44 #16
String sql = "SELECT Fejl_nr, Fejl_meddelelse " +
                    "FROM " + FejlMeddelelserDBTabelnavn +
                    " ORDER BY Fejl_nr;";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery (sql);
ArrayList fejl = new ArrayList();
       
int fejl_nr = 0;
String fejl_meddelelse = "";
while (rs.next()) 
{
    fejl_nr = rs.getInt ("Fejl_nr");
        fejl_meddelelse = rs.getString("Fejl_meddelelse");
        fejl.add(fejl_nr, fejl_meddelelse);
}

stmt.close();

return fejl;
Avatar billede banielsen Nybegynder
09. juni 2005 - 19:28 #17
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester