Autore Topic: timeout connessione al database  (Letto 1613 volte)

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
timeout connessione al database
« il: 20 Settembre 2012, 12:30:27 CEST »
0
si può impostare una sorta di timeout per la connessione ad un database... perché se per esempio inserisco un ip errato l'applicazione si blocca

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:timeout connessione al database
« Risposta #1 il: 24 Settembre 2012, 09:23:43 CEST »
0
up

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:timeout connessione al database
« Risposta #2 il: 24 Settembre 2012, 11:14:54 CEST »
0
in java quando cerco di connettermi ad un host che non è in ascolto dopo qualche secondo ricevo questo errore:

Exception in thread "main" org.postgresql.util.PSQLException: Connessione rifiutata. Controllare che il nome dell'host e la porta siano corretti, e che il server (postmaster) sia in esecuzione con l'opzione -i, che abilita le connessioni attraverso la rete TCP/IP.
   at org.postgresql.Driver$ConnectThread.getResult(Driver.java:346)
   at org.postgresql.Driver.connect(Driver.java:269)
   at java.sql.DriverManager.getConnection(Unknown Source)
   at java.sql.DriverManager.getConnection(Unknown Source)
   at Main.main(Main.java:20)
Caused by: java.net.ConnectException: Connection timed out: connect
   at java.net.DualStackPlainSocketImpl.connect0(Native Method)
   at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
   at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
   at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
   at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
   at java.net.PlainSocketImpl.connect(Unknown Source)
   at java.net.SocksSocketImpl.connect(Unknown Source)
   at java.net.Socket.connect(Unknown Source)
   at java.net.Socket.connect(Unknown Source)
   at java.net.Socket.<init>(Unknown Source)
   at java.net.Socket.<init>(Unknown Source)
   at org.postgresql.core.PGStream.<init>(PGStream.java:60)
   at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:74)
   at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
   at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:123)
   at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:28)
   at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:20)
   at org.postgresql.jdbc3g.Jdbc3gConnection.<init>(Jdbc3gConnection.java:22)
   at org.postgresql.Driver.makeConnection(Driver.java:391)
   at org.postgresql.Driver.access$100(Driver.java:45)
   at org.postgresql.Driver$ConnectThread.run(Driver.java:306)
   at java.lang.Thread.run(Unknown Source)

in android invece si blocca l'applicazione e non ricevo nessuna eccezione. come posso risolvere?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:timeout connessione al database
« Risposta #3 il: 24 Settembre 2012, 11:23:07 CEST »
0

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:timeout connessione al database
« Risposta #4 il: 24 Settembre 2012, 11:35:09 CEST »
0
come se non lo avessi gia fatto... ho provato a mettere DriverManager.setLoginTimeout(5); ma l'applicazione si blocca lo stesso

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:timeout connessione al database
« Risposta #5 il: 24 Settembre 2012, 12:54:28 CEST »
0
come l'hai impostata la connessione in android?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:timeout connessione al database
« Risposta #6 il: 24 Settembre 2012, 13:54:49 CEST »
0
intendi questo ?

Codice: [Seleziona]
try {
        Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
        error = true;
}
DriverManager.setLoginTimeout(5);
connection = DriverManager.getConnection(url);
« Ultima modifica: 24 Settembre 2012, 14:39:33 CEST da topix93 »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:timeout connessione al database
« Risposta #7 il: 24 Settembre 2012, 14:39:34 CEST »
0
Non so quale driver hai usato per postgresql, ma se si tratta di quello java standard, potrebbe non funzionare su android. Per dirla in modo semplicistico, android non è java-compatibile al 100%.

(vedi la risposta a questa domanda sqlite - does android support JDBC - Stack Overflow )
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:timeout connessione al database
« Risposta #8 il: 24 Settembre 2012, 14:40:33 CEST »
0

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:timeout connessione al database
« Risposta #9 il: 24 Settembre 2012, 14:42:59 CEST »
0
googlando però ho anche trovato questo: http://code.google.com/p/psqldroid/ ma non capisco come si utilizzi e come si implementa

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:timeout connessione al database
« Risposta #10 il: 24 Settembre 2012, 15:07:48 CEST »
0
oppure ce un modo, magari piu grezzo, per interrompere il tentativo di connessione?

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:timeout connessione al database
« Risposta #11 il: 28 Settembre 2012, 14:56:48 CEST »
0
Alla fine, ho fatto in modo che dopo 5 secondi il thread, che stabiliva la connessione, terminava in una maniera un po grezza ovvero utilizzando questo codice:
Codice (Java): [Seleziona]
Timer t = new Timer();
                t.schedule(new TimerTask(){
             public void run() {
                 ...
              }
            }, 5000);