Autore Topic: [Risolto] Problema Gambas - Postgres  (Letto 909 volte)

Offline robustelli

  • Gamberetto
  • *
  • Post: 3
    • Mostra profilo
[Risolto] Problema Gambas - Postgres
« il: 09 Agosto 2017, 18:16:49 »
Salve a tutti del forum
ho creato una semplice applicazione con Gambas per
gestire le interruzioni del Server Dove è Installato PostgreSQL
(Mi connetto.. faccio una Try query ogni 30 min ... se questa va in errore il server non è raggiungibile)

il problema è che se provo a spegnere il server DOPO aver effettuato la connessione
si blocca sulla query di controllo attendendo infinitamente che il server torni su
... la stessa applicazione l'ho fatta su VB6 e funziona perfettamente
quindi il problema non credo sia Postgres

qualcuno sa se è possibile impostare un timeout da qualche Parte ?

grazie a tutti gli utenti che si cimenteranno in un risposta
« Ultima modifica: 11 Agosto 2017, 16:10:51 da robustelli »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:Problema Gambas - Postgres
« Risposta #1 il: 10 Agosto 2017, 18:00:50 »
30 minuti per la query?

non conosco il tuo setup ... ma forse per sapere se un server e' su o meno potresti fare in modo diverso .... magari in loco (ovvero sulla macchina che gestisce il database).

Se invece ti serve un controllo sul client, penso che esista il parametro .timeout nella connessione

 
Codice: [Seleziona]
 Dim Comando As String = "select * from canzoni"
  Dim $Con As New Connection
  Dim Risultato As Result
 
  $Con.close()                  ' Close the connection
  $Con.Type = "MySQL"           ' Type of connection
  $Con.Host = TextBox_IP.Text   ' Name of the server
  $Con.Login = TextBox_DBuser.Text    ' User's name for the connection
  $Con.Port = TextBox_Port.Text       ' Port to use in the connection, usually 3306
  $Con.Name = TextBox_DBname.Text     ' Name of the database we want to use
  $Con.Password = TextBox_DBpass.Text ' User's password
 
  $con.Timeout = 2 'in secon
se corri, morirai stanco (motto degli sniper)

Offline robustelli

  • Gamberetto
  • *
  • Post: 3
    • Mostra profilo
Re:Problema Gambas - Postgres
« Risposta #2 il: 10 Agosto 2017, 18:24:06 »
Grazie della risposta allegfede

Non
30 min per effettuare una query...
Ma
ogni 30min effettuo una query...

in verità avevo già visto questa opzione
ma sembrerebbe non funzionare
anche mettendo il timeout a 2000Ms
rimane sull' istruzione della select
(ho aspettato 1 min poi ho chiuso l' esecuzione)

oggi ho fatto altre prove ed ho scoperto che
il sistema, anche staccando il cavo di rete
fa rimanere la connessione attiva

Questo è quello che mi da il netstat a cavo di rete staccato...
tcp        0     44 192.168.1.105:33062     192.168.1.1:5432        ESTABLISHED

ho parlato anche con esperti di postgres e mi hanno detto
che l'unica cosa che si puo' fare è gestire la libreria postgres
di gambas ... se già non c'è qualcosa che faccia al mio caso

intanto domani effettuerò altre prove
sperando di bypassare il problema in altro modo
anche perchè mettere mano alla libreria postgres
è l'ultimo dei miei desideri (soprattutto il 10 agosto :P )

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Problema Gambas - Postgres
« Risposta #3 il: 10 Agosto 2017, 19:22:25 »
...
anche mettendo il timeout a 2000Ms
...

Attenzione che il timeout si imposta in secondi e non in Ms se lo imposti a 2000 è più di mezz'ora.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline robustelli

  • Gamberetto
  • *
  • Post: 3
    • Mostra profilo
Re:Problema Gambas - Postgres
« Risposta #4 il: 11 Agosto 2017, 16:08:47 »
allegfede, Gianluigi...

Sono un Pollo...
me ne so appena accorto leggendo meglio il wiki
che l' attributo era in Secondi e non in Millisecondi

Ragazzi, e a questo punto fatevi fare una domanda

vi pongo uno scenario


- connessione con timeout a 5 secondi
- passano 30 secondi
- faccio la query

cosa succede... me la fa.. o devo considerare il server "disconnesso"

oppure quel timeout 5secondi stà solo a dire il tempo massimo
di risposta del server

grazie ancora.


Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:[Risolto] Problema Gambas - Postgres
« Risposta #5 il: 11 Agosto 2017, 16:18:28 »
Purtroppo non ti posso aiutare in quanto non l'ho mai usato, attendiamo Allegfede il quale oltre che disponibile e simpatico è anche molto estroso e quindi potrebbe risponderti subito come fra un mese  :D
Aggiungo questo...

Il timeout credo serva a impostare un tempo di risposta passato il quale la connessione si interrompe.

Io ho sempre usato database tipo Access e SQLite pertanto... ma ho sempre usato il metodo di aprire la connessione eseguire la singola operazione e chiudere la connessione.
Credo di poter dire che questo è l'unico modo sicuro di operare.
« Ultima modifica: 11 Agosto 2017, 16:50:54 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro