Hello, ranchers! I let my remote data implements unreferenced interface, but I found it behave strangely. I create a test client, which spawns 30 threads to bookFlight() for the same flight, it works. after I commented the unlock(), off course there is only one thread get the lock, the others will wait. but after a period(less than 1 min), the unreferenced() in the remote data which was holding the lock was called. I am confused why this will happen, I didn't close the client. Anyone can show some light? thanx
Just guessing: if your client discards or removes references to the stub that gives you access to the remote server then, after a while, the Garbage Collector will remove the object from memory. Thus, the remote object is no longer referenced and that's why its unreferenced method is called. No matter if you called close or not.