Originariamente inviato da Ottavioinfo
Il punto è che il metodo sessionCreated viene invocato correttamente ma il metodo sessionDestroyed non viene invocato.
Come mai?
Il server di per sé non può "sapere" che l'utente ha chiuso la finestra (o gli si è spento il PC, o si è staccato il cavo di rete .....).

HTTP è stateless, fai una request, ricevi una response. Dopodiché il server non può sapere più nulla finché non viene fatta un'altra request.

Le soluzioni? Aspettare il timeout della sessione, a quel punto sessionDestroyed lo ottieni. Ma dipende da cosa devi fare di preciso e il perché, potrebbe non andarti bene.
Oppure smanettare lato client con funzioni Javascript per ricevere un evento di chiusura e di conseguenza fare una piccola request speciale al server per dire "ehi, ho chiuso". Ma su questa soluzione ci sono di certo questioni di compatibilità tra i browser da valutare e su cui indagare.