Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Tempo limite di connessione al database

    Salve a tutti e premetto che ho sondato tutto il forum ma non sono stato capace di trovare una soluzione al mio problema.

    Sono nella condizione di dover gestire un negozio in locale ma avendo anche un sito in rete, lo stesso database (replicato) deve essere aggiornato in tempo reale anche on-line.

    Quindi dopo aver fatto le dovute query del caso in locale, le stesse query le effettuo anche sul database on line da remoto.

    Il problema si pone quando ad esempio (mi è capitato per puro caso purtroppo/per fortuna) il server on-line è reso irraggiungibile per qualsivoglia motivo e quindi non riesco ad effettuare la connessione al database in tempo utile, diciamo entro 7 secondi.

    Vorrei poter quindi settare il tempo di connessione oltre il quale la connessione stessa fallisce e non attendere il maximum execution time del php.ini per evitare rallentamenti anche in locale.

    Grazie a tutti per le risposte che mi darete ciao.
    www.skorpiograph.com - [ PORTFOLIO ]
    ...se vuoi essere aiutato devi aiutare chi ti aiuta ad aiutarti!!!

  2. #2
    forse fai prima e meglio a lavorare su un solo db, quello remoto.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Originariamente inviato da piero.mac
    forse fai prima e meglio a lavorare su un solo db, quello remoto.

    magari fossi tu il mio "cliente"......
    purtroppo (e non posso dargli tutti i torti alla fine per come si è sviluppato il tutto) mi trovo costretto a lavorare in questo modo per esigenze sue visto che è previsto anche il magazzino articoli, preventivi, ordini, fatturazione, scontrini fiscali ed altro ancora, ovviamente se per qualche semplice motivo il server gli va down allora è fregato (ed io inc.......to !! ) perchè ad esempio non potrebbe emettere scontrini e/o fatture.

    E' un grosso guaio da cui devo tirarmi fuori, purtroppo non ho alternative quindi confido in voi per qualche soluzione......

    Grazie mille.
    www.skorpiograph.com - [ PORTFOLIO ]
    ...se vuoi essere aiutato devi aiutare chi ti aiuta ad aiutarti!!!

  4. #4
    se php non riesce a connettersi, e tu vuoi limitare il tempo di time out della connessione puoi agire sulla configurazione del php.ini

    ; Maximum time (in seconds) for connect timeout. -1 means no limit
    mysql.connect_timeout = 60

    prova ad inserire il valore che tu ritieni piu' opportuno.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Originariamente inviato da piero.mac
    se php non riesce a connettersi, e tu vuoi limitare il tempo di time out della connessione puoi agire sulla configurazione del php.ini

    ; Maximum time (in seconds) for connect timeout. -1 means no limit
    mysql.connect_timeout = 60

    prova ad inserire il valore che tu ritieni piu' opportuno.
    cavoli e questa??

    sai che avevo ignorato la sua esistenza??
    Ma dato che ci sono vorrei chiederti alcune domande a proposito.

    Questa direttiva la si può cambiare anche solo temporaneamente come per il max_execution_time tramite il set_time_limit(n); ?

    Se si, deve essere messo per forza prima di ogni header oppure lo si può inserire anche ad un certo punto della pagina? ovvero solo quando mi occorre?

    Questa direttiva va ad inficiare solo ed esclusivamente sul tentativo della connessione oppure in quel tempo lo script deve effettuare tutte le sue query siano esse una, dieci, cento, mille?? Ovvero se lo script non ce la fa a farle tutte entro il tempo stabilito che succede? si chiude la connessione??

    Ti chiedo già di scusarmi per tutte queste domande ma visto che forse mi hai dato la dritta giusta vorrei essere sicuro di quello che sto facendo visto che non ho mai affrontato questa problematica.
    www.skorpiograph.com - [ PORTFOLIO ]
    ...se vuoi essere aiutato devi aiutare chi ti aiuta ad aiutarti!!!

  6. #6
    il set_time_limit limita il tempo di esecuzione dello script ... tempo globale.

    dovresti usare:

    ini_set("mysql.connect_timeout", "secondi[int]");

    mysql.connect_timeout integer
    Timeout di connessione in secondi. Per Linux questo timeout è usato anche per attendere la prima risposta dal server.
    Si riferisce solo al tempo di connessione e prima risposta.

    fai delle prove. sinceramente so che esiste ma non ne ho mai avuto bisogno. ovviamente andra' messo prima della connessione ed e' disponibile solo a partire dal php >= 4.3.3

    http://it2.php.net/manual/it/ini.php#ini.list

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Originariamente inviato da piero.mac
    il set_time_limit limita il tempo di esecuzione dello script ... tempo globale.
    si lo sapevo era solo per fare un paragone e verificare l'esistenza di una simile soluzione....e mi hai detto che c'è!!

    benissimo per adesso credo di avere sufficienti informazioni e vado a documentarmi un pochino per poi fare dei test.....beh! magari i test li farò domani che ora è tardi!

    Ti ringrazio per l'aiuto che mi hai dato e ti auguro buon proseguimento.
    Credo cmq che se dovessi avere ancora problemi chiederò ancora! 'notte
    www.skorpiograph.com - [ PORTFOLIO ]
    ...se vuoi essere aiutato devi aiutare chi ti aiuta ad aiutarti!!!

  8. #8
    Rieccomi di buon mattino, un'ultima dritta perchè non mi viene in mente nulla (sarà che ho ancora sonno boh!) come devo fare per intercettare la connessione avvenuta?

    questa è la porzione di codice della classe che utilizzo per la connessione al database:

    Codice PHP:
    function connect() {

      if (
    $this->static_conn) { #Controllo caso connessione permanente oppure no
        
    $conn_type 'mysql_pconnect';
      } else {
        
    $conn_type 'mysql_connect';
      }

      
    $this->connection_id $conn_type($this->db['host'],$this->db['user'],$this->db['password'])
          or die
      (
    $this->fatal_error("$conn_type($this->db['host'],$this->db['user'],$this->db['password'])"));

      @
    mysql_select_db($this->db['db'],$this->connection_id)
        or die
      (
    $this->fatal_error("mysql_select_db("[size="1"][b]".$this->db['db']."[/b][/size]")."));


    codice per effettuare la richiesta di connessione tramite la classe DB
    Codice PHP:
          $DBremote1 = new DB();
          
    $DBremote1->dati_db("ip_address","username","password","name_db");
          
    $CONN $DBremote1->connect();
          if(
    $CONN) {echo $CONN."connessione eseguita";}
          
    $DBremote1->close(); 
    quindi $CONN mi rimane sempre vuota e credo che sia giusto ma come devo fare per far si che invece $CONN assuma un valore (1 / 0) ? Devo modificare la classe oppure c'è qualche altro sistema?

    Ciao e grazie ancora.
    p.s. intanto io cerco di documentarmi in rete
    www.skorpiograph.com - [ PORTFOLIO ]
    ...se vuoi essere aiutato devi aiutare chi ti aiuta ad aiutarti!!!

  9. #9
    provo a fare un uppino
    www.skorpiograph.com - [ PORTFOLIO ]
    ...se vuoi essere aiutato devi aiutare chi ti aiuta ad aiutarti!!!

  10. #10
    last up
    www.skorpiograph.com - [ PORTFOLIO ]
    ...se vuoi essere aiutato devi aiutare chi ti aiuta ad aiutarti!!!

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.