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

    [Servlet] E' corretto chiudere il DB nel destroy()?

    Salve,

    ho una Servlet che si connette ad un DB MySQL tramite JDBC.
    Ho realizzato la connessione al DB, insieme all'inizializzazione dei PreparedStatement, nel metodo init() della Servlet, le interrogazioni nel metodo doPost(...) e la chiusura del DB e dei PreparedStatement nel metodo destroy().
    All'apertura e alla chiusura del DB ho messo delle stringhe informative che mi informano che il DB è stato chiuso o aperto e mi accorgo che nell'usare la mia Servlet il DB viene aperto e mai chiuso anche se questa servlet chiama altre Servlet o classi.
    Allora ho messo l'apertura del DB prima del metodo doPost(), tra le variabili d'istanza, e la chiusura nel relativo blocco finally, ma mi accorgo che il DB viene aperto e chiuso continuamente ad ogni operazione di doPost(...)....insomma qual'è il metodo giusto? E, sopratutto, quando verrebbe chiamato il destroy in modo che io possa vedere la stringa informativa "Mi sono disconnesso"?

    Spero di essere stato chiaro,

    Grazie dell'attenzione,
    Matteo.
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  2. #2
    La init viene chiamata una volta sola (alla creazione della servlet che può essere o allo startup del container o alla sua prima invocazione) e la destrouy una volta solo prima della sua distruzione (che avviene solo quando viene fatto il restart del contesto o viene stoppato il container).

    non è corretto quello che stai facendo. Questo perché la servlet può rispondere a più richieste contemporaneamente (quindi sei in un ambiente concorrente) e non puoi usare un'unica connessione per diverse richieste. Quindi la soluzione è aprire/usare/chiudere una connessione per ogni richiesta. Siccome questo è oneroso in termini di risorse di preferisce usare quasi sempre un pool di connessioni.

    ciao
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  3. #3
    Grazie tante per la risposta
    Ho trovato questa breve guida che sto leggendo in modo da seguire il tuo consiglio

    Gestione dei Pool di Connessioni con Java
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

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.