Domanda

Ho un'applicazione J2EE su cui la disconnessione non è implementata correttamente, la mia intenzione è quella di chiudere tutte le risorse DB una volta che l'utente si disconnette. Non sono sicuro se session.invalidate (); di vero aiuto, cercherò oggi. Si prega di consulenza quale sarebbe il migliore per modo di implementare il logout in modo che tutte le risorse preziose vengono rilasciate volta che l'utente si disconnette.

È stato utile?

Soluzione

  

la mia intenzione è quella di chiudere tutte le risorse DB una volta che l'utente si disconnette

Questo è già un segno di una cattiva pratica. Le risorse DB deve essere acquisita e chiuso nel minor portata possibile, cioè all'interno del blocco stesso metodo. Si può mai entrare in possesso di una risorsa DB (Connection, Statement e / o ResultSet) come una variabile statica o istanza. E 'la ricezione di perdite di risorse e problemi più gravi.

Se l'intento originale è quello di migliorare le prestazioni di collegamento, è necessario introdurre un pool di connessioni. Tenete a mente che questa non è una scusa per mantenere le connessioni aperte voi . Basta acquisire e chiudere il più presto possibile allo stesso modo, l'attuazione pool di connessioni stessa sarà preoccuparsi se stesso per il fatto di chiudere la connessione o il rilascio di nuovo alla piscina. È tutto completamente trasparente. Decenti application server viene fornito con funzionalità di pool di connessioni in sapore di origini dati JNDI. Fare uso di esso. Una volta fatto questo, non è necessario preoccuparsi di eventuali risorse DB aperti né le prestazioni a tutti.

Altri suggerimenti

Si prega di fare come

  1. Usa la tua connessione e altre classi di database per rimuovere le risorse DB.
  2. Cancella voi sessione utilizzando oggetto di sessione.
  3. Controlla il cookie è stato creato in applicazione e rimuovere richiesti uno o tutti.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top