Community
Participate
Working Groups
After the server disconnects an idle client because the idle time exceeds DSTORE_IDLE_SHUTDOWN_TIMEOUT, and before the client detects the disconnect, if a client performs some operation, the client hangs. There are at least 2 problems. 1. Disconnect on the server for an idle client is not reflected to the client immediately. e.g. It takes 2 minutes. 2. StatusMonitor runs in the UI thread, and ConnectionStatusListener.ConnectionDown is blocked.
Ouch, this sounds bad. When the client "hangs" is there anything the user can do to get it work again or is all of Eclipse dead?
The user cannot do anything, and kills the workbench from the task manager.
Ouch. We cannot allow this into 3.1 and better fix ASAP. Dave can you handle this?
Masao, this is on Windows with 3.1RC?
Masao, are you able to reproduce this with just base-RSE (i.e. not a z/OS connection)? What value do you give DSTORE_IDLE_SHUTDOWN_TIMEOUT?
The version in use is 3.0.3. The first problem does not occur with Unix or REXEC, where the server is terminated by System.exit() on disconnect, and the socket is closed implicitly.
Created attachment 137846 [details] patch to disconnect when in single-server mode as well as check for isConnected() in statusmonitor Masao, does this patch help?
I've opened bug 278619 for the backport to the RSE 3.0.3+ maintenance branch.
Kevin, could you review this please?
Review +.
Thanks Kevin, I've committed the fix to cvs.
I tried the fix, and confirmed it works good.
The code in CVS ServerCommandHandler v1.12 line 63 doesn't match the patch attached here: if (_serverTimedOut) { System.out.println("server timed out"); Please review whether the System.out.println() is appropriate at this point.
(In reply to comment #13) > The code in CVS ServerCommandHandler v1.12 line 63 doesn't match the patch > attached here: > > if (_serverTimedOut) > { > System.out.println("server timed out"); > > > Please review whether the System.out.println() is appropriate at this point. > The print was used for testing. I've taken that out now and recommitted.