Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327

    [JAVA] Mysql - Connection was implicitly closed by the driver

    Salve gente,
    ho sviluppato un applicazione in java che fa uso di mysql ma purtroppo, dopo ore di utilizzo, ho riscontrato un problema con la connessione a mysql stesso.

    Quadro generale del lavoro che svolge l'applicazione:
    L'applicazione è un server che gira in background e lavora soltanto quando un client si connette ad esso per usufruire dei suoi servizi.
    Ad ogni client connesso il server dedica un Thread, all'interno del quale viene aperta una nuova connessione al db e stanziati oggetti necessari ad offrire determinati servizi.

    Durante la comunicazione con un client, il server fa uso di mysql per registrare parte dei dati che il client stesso gli manda, effettua elaborazioni e risponde al client...

    Nel Thread principale, all'avvio del server, viene aperta una connessione al db necessaria al server per le sue operazioni, esterne ad ogni operazione aperta con un client.
    Quest'applicazione sta praticamente accesa 24h su 24h, e dopo ore di utilizzo ho iniziato ad avere questo errore

    No operations allowed after connection closed.Connection was implicitly closed by the driver.

    e il server praticamente non mi permetteva di far più nulla perché non aveva connessione al db a quanto pare.

    L'errore dice che non è possibile effettuare operazioni dopo che la connessione è stata chiusa, ed è stata chiusa dal driver... ma perché? presumo per un timeout... o ci sono altri casi, è possibile che sia andato in crash il driver che mi mantiene la connessione al db?
    conoscete un modo per risolvere.... ho già cercato un giro su google ma non riesco a trovare nulla di chiaro

    Uso JConnector per connettermi a mysql


    grazie mille sempre per il vostro aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327
    e non sbaglio le connessioni vengono chiuse automaticamente da mysql dopo 8 ore di inattività a meno che non venga impostata la proprietà autoReconnect o autoReconnectForPools (quale è la differenza tra le 2?), se imposto la proprietà di riconnessione, i riferimenti all’oggetto di connessione sono ancora validi o puntano ad un oggetto inesistente?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327
    nessuno che può darmi una mano?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Teoricamente credo sia più corretto connettersi (usando Connection insomma) una sola volta, e poi usare quello per "estrapolare" gli Statement.


    PS: Chiedo venia per l'italiano, ma a quest'ora...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327
    Originariamente inviato da Patrick Jane
    Teoricamente credo sia più corretto connettersi (usando Connection insomma) una sola volta, e poi usare quello per "estrapolare" gli Statement.


    PS: Chiedo venia per l'italiano, ma a quest'ora...
    non credo che usare sempre la stessa connessione per tutti i thread sia la soluzione migliore... è meglio che ogni thread apra una sua connessione a mysql quando gli serve e chiuderla quando ha finito

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    qui c'è una presentazione che potrebbe chiarire un po' di questioni:

    http://www.parleys.com/#st=5&id=3014&sl=25

    in particolare dal minuto 19 in poi.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327
    grazie do subito un'occhiata

  8. #8
    Utente di HTML.it L'avatar di yuno
    Registrato dal
    Apr 2010
    Messaggi
    62
    io do ragione a Patrick Jane, visto che se non sbaglio richiedere una connessione ti da un riferimento se la connessione è attiva altrimenti ne apre 1 oltre che per quanto riguarda le prestazioni java ti suggerisce di aprire e chiudere le connessioni

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.