How does the GC programs identify a object to be not reffered by any reference. I am writting a Connection Pooling implementation and I face a similar problem. Once I give a connection how do I come to know whether the user program has chaged the reference from the given connection object. Or if the user program closes the connection object then how do i notify my I ConnectionPool Manager. In weblogic Connection pooling it gives us an instance of connection object, once we close the Connection object probabaly the weblogic connection pool gets notified and then it reallocates the Connection Object. Please help me out with some good suggestions.