>>>> Connection has to be closed and removed from the pool >>>> 1. At shutdown. We have to loop through all connections in >>>> m_connections >>>> list and close them, then clear m_connections list. >>>> >>>> >>> What happens to connections that were requested by servlets and weren't >>> returned to the pool when shutdown occurs? >>> >> >> Those unreturned connections have to be closed. >> Perhaps we should have a list for checked in connections too and clear >> it >> on shutdown the same way as we clear m_connections. >> > But how will those functions that got hold of connections know that > connections have disappeared from under them. What happens to > transactions that are in progress at that time? I did a research on this issue and here is how it imho should be: After shutdown any connections that are currently active should be allowed to return to the pool once their transaction is complete. Then we remove them from m_connections list. Basically it means that on shutdown we have to cleanup m_connections, then wait(perhaps for limited time interval) for all used connections to return to the pool(we know how many is used at any given time), then shutdown the pool completely. Also, since these problems related, any client' calls for connections that are made during the shutdown should be queued until the pool is avalailable again. If want something like this, my guess is that we have to have a temporary storage for those calls, then, when pool is available again, load them to the pool at once.
Authoright © Total Knowledge: 2001-2008