On Jul 20, 2009, at 3:12 AM, Cheong Hee (Gmail) wrote:
Brilliant! An add-on "finally" statement did get the active session
count down as expected in JavaMonitor. I have read through wiki
about the WOSession and its session lock, but not this bit of
information to force it to terminate. Will update later.
If adding the finally made it work, that indicates that an exception
was thrown somewhere in the previous code.
There must be somewhere seriously locking the session.
No, your terminate was throwing an exception. Add this before the
finally:
catch (RuntimeException e) { NSLog.out.appendln(e); throw e; }
As of now, all worked fine except the last statement after the call
to super.terminate() will never executed, e.g. NSLog statement for
activeSessionCount(). I am not quite sure why it is unable to
terminate, could it due to eo in wocomponent. And just checked my
code that no WOSession has been declared in any wocomponent.
You want to look at the code BEFORE the call to super.
Chuck
----- Original Message ----- From: "Chuck Hill" <ch...@global-village.net
>
To: "Cheong Hee (Gmail)" <chn...@gmail.com>
Cc: <webobjects-deploy@lists.apple.com>
Sent: Saturday, July 18, 2009 1:27 AM
Subject: Re: Inaccurate active session count in JavaMonitor
On Jul 17, 2009, at 10:15 AM, Cheong Hee (Gmail) wrote:
Adding the code as mentioned earlier, I have run three sessions
with the following conditions:
session1: log out gracefully by the user
session2: time out occurs
session3: time out occurs
The sequence of sessions are session1, following by session2 and
then session3.
When session1 is terminated by the user, the log shows
session.terminate() is called and the active session count is
reduced by 1. So the total active session count = 2.
When session2 is time out, the log also shows that
session.terminate() is called. However the active session count
does not reduce, and keep the count = 2.
The session3 is the last session being time out. The log again
shows that session.terminate() is called, however the active
session count = 2. The only difference is when timeout,
session.terminate() is invoked by Session Timeout Thread whereas
the normal log out session.terminate() is callled by WorkerThread.
JavaMonitor also showed the active count = 2. And the count
will be there forever until the next stop-start sequence of
instance.
Any idea to solve this or reduce the count somewhere by coding when
timeout happens?
Something is very wrong with your application. I can't guess what it
is. Did you add the try...finally to terminate like I suggested? If
not, that is the first thing to so.
Chuck
--
Chuck Hill Senior Consultant / VP Development
Learn WO at WOWODC'09 East in Montréal this August!
http://www.wocommunity.org/wowodc09/east
http://arstechnica.com/apple/news/2009/07/webobjects-sliced-from-106but-prognosis-of-death-premature.ars
--
Chuck Hill Senior Consultant / VP Development
Learn WO at WOWODC'09 East in Montréal this August!
http://www.wocommunity.org/wowodc09/east
http://arstechnica.com/apple/news/2009/07/webobjects-sliced-from-106but-prognosis-of-death-premature.ars
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-deploy mailing list (Webobjects-deploy@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-deploy/archive%40mail-archive.com
This email sent to arch...@mail-archive.com