The Enhydra.unRegister( Thread ) does not propery
remove all the references to the thread, which prevents the thread from being
garbage collected. The Enhydra.register(Thread, Application) method adds
the thread into htAppCount and applications hashtables, and also makes calls
to DODS.register(Thread, DatatbaseManager) and DODS.registerLogChannel(
Thread, LogChannel ). Each of those calls adds a reference to the thread
to a static hashtable in the DODS class.
The unRegister( Thread ) method removes the
thread from htAppCount and applications hashtables, and calls
DODS.unregister(Thread) which removes the thread from the databaseManagers
hashtable, but the reference in logChannels is never removed.
It looks like the whole mess can be fixed by
adding a call to DODS.unregisterLogChannel(Thread), but I don't quite
understand what's going on with the LogChannels.
Alex Yakushev
Programmer
Internet
Exposure