Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ption: Communications link failure

    Salve a tutti, ho scritto una classe dove nel main eseguo una connessione al db, una select, e faccio un ciclo che processi i risultati della select:

    codice:
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class Prove {
        public Prove(){
            try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection con = DriverManager.getConnection("jdbc:mysql://62.149.150.132?user=utente&pass=password");
                Statement stat = con.createStatement();
                String query = "SELECT * FROM db_1.content";
                ResultSet rs = stat.executeQuery(query);
                int i=1;
                while(rs.next()) {
                    query = "INSERT INTO db_5.content (id,title,alias,title_alias,introtext,fulltext,state,sectionid,mask,catid,created,created_by,created_by_alias,modified,modified_by,checked_out,checked_out_time,datetime,publish_up,publish_down,images,urls,attribs,version,parentid,ordering,metakey,metadesc,access,hits,metadata) VALUES ("+rs.getString("id")+","+rs.getString("title")+","+rs.getString("alias")+","+rs.getString("title_alias")+","+rs.getString("introtext")+","+rs.getString("fulltext")+","+rs.getString("state")+","+rs.getString("sectionid")+","+rs.getString("mask")+","+rs.getString("catid")+","+rs.getString("created")+","+rs.getString("created_by")+","+rs.getString("created_by_alias")+","+rs.getString("modified")+","+rs.getString("modified_by")+","+rs.getString("checked_out")+","+rs.getString("checked_out_time")+","+rs.getString("datetime")+","+rs.getString("publish_up")+","+rs.getString("publish_down")+","+rs.getString("images")+","+rs.getString("urls")+","+rs.getString("attribs")+","+rs.getString("version")+","+rs.getString("parentid")+","+rs.getString("ordering")+","+rs.getString("metakey")+","+rs.getString("metadesc")+","+rs.getString("access")+","+rs.getString("hits")+","+rs.getString("metadata")+")";
                    stat.executeUpdate(query);
                    System.out.println("Eseguita query numero "+i);
                    i+=1;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
            new Prove();
        }
    }
    Ho sempre lavorato con i DB con java senza avere mai problemi, l'unica cosa è che prima ho sempre lavorato con i db usando Java Server e non Java Client, ora mi dà quest'errore:

    codice:
    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    	at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1118)
    	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:343)
    	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2308)
    	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
    	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
    	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    	at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
    	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
    	at java.sql.DriverManager.getConnection(DriverManager.java:582)
    	at java.sql.DriverManager.getConnection(DriverManager.java:207)
    	at prove.Prove.<init>(Prove.java:19)
    	at prove.Prove.main(Prove.java:38)
    Caused by: java.net.ConnectException: Connection timed out: connect
    	at java.net.PlainSocketImpl.socketConnect(Native Method)
    	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    	at java.net.Socket.connect(Socket.java:529)
    	at java.net.Socket.connect(Socket.java:478)
    	at java.net.Socket.<init>(Socket.java:375)
    	at java.net.Socket.<init>(Socket.java:218)
    	at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
    	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:292)
    	... 15 more
    Premetto che IP di connessione, user e password sono giusti, e la libreria di mysql c'è tra quelle importate
    L'ascensore può scendere su e giù...
    by Prof di Sistemi

  2. #2
    Eppure l'errore è un connection time out, quindi il server non ha mai risposto.
    Noto che nella tua stringa di connessione non indichi la porta in ascolto sul server... è voluto?
    ...

  3. #3
    Ciao, innanzitutto grazie per la risposta immediata, si, è voluto, perchè Aruba non mi fornisce una porta sulla quale il server sia in ascolto, mi fornisce solo host, user, password e nomedb..
    L'ascensore può scendere su e giù...
    by Prof di Sistemi

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da Harlandraka_94
    Ciao, innanzitutto grazie per la risposta immediata, si, è voluto, perchè Aruba non mi fornisce una porta sulla quale il server sia in ascolto, mi fornisce solo host, user, password e nomedb..
    Aruba non ti consente nemmeno di accedere direttamente al DB dall'esterno della sua rete... è scritto anche nel suo contratto. Solo le macchine di quell'hoster possono accedere al DB.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Diamine Cambierò hosting, ok problema risolto, grazie mille ciao!
    L'ascensore può scendere su e giù...
    by Prof di Sistemi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.