I've seen this issue before, many years ago too. Where it bit me was where I touched sessions and contexts in my component without testing to see if I in fact had either to work with.
You mentioned creating a context for your email. Are you then touching context.session()? It will lazy load a session. As will component.session(). Search across your project for "session()" and "context()". There's typically a culprit out there. Here's a helper we use in our components for accessing a current session, but only if one already exists. It may be overkill, but at the time it helped remove our zombie sessions. public WOSession currentSession() { if (hasSession()) { return session(); } else if (context() != null) { if (context().hasSession()) { return context().session(); } else { return null; } } else { return null; } } -George On Mar 21, 2013, at 6:47 AM, Altera WO Team <webobje...@altera.it> wrote: > I tried anyway and I can confirm. I'm not creating needless sessions. > > The app locks up anyway though… > > I lost hope in finding the real reason, for now I would be happy to find a > dirty workaround. I need those apps to bounce anyway. > > I already tried using ERTimeToKill and it's ineffective. > > The lockups are quite rare: I have 10 instances running, bouncing every 6 > hours and it happens maybe 2 times a week, but if an instance locks up the > instances running become 9 and in the long run I'll have everything locked up. > > Any suggestions? > > > Matteo > > > On 20/mar/2013, at 01:16, Chuck Hill <ch...@global-village.net> wrote: > >> I think the problem is not that it is creating needless sessions, but that a >> checked-out session is not getting checked back in. >> >> Chuck >> >> >> On 2013-03-19, at 5:08 PM, Simon wrote: >> >>> if we have this kind of issue the first thing we do is log out session >>> creation and check the stack traces. stick something like this in your >>> session constructor then check the output: >>> >>> public Session() { >>> super(); >>> StringWriter stringWriter = new StringWriter(); >>> >>> PrintWriter printWriter = new PrintWriter(stringWriter); >>> >>> (new Throwable()).printStackTrace(printWriter); >>> >>> String trace = stringWriter.toString(); <---- log this somewhere that you >>> can get easy access to >>> >>> } >>> >>> >>> >>> >>> >>> >>> On 19 March 2013 23:15, Altera WO Team <webobje...@altera.it> wrote: >>> Wow, good hint! >>> >>> In theory I'm not touching a Session but sometimes, when something in an EO >>> changes I trigger e-mail sending. >>> I use ERMailDeliveryHTML using a component instantiated with a brand new >>> wocontext using ERXWOContext.newContext() >>> the component is not referencing a Session in any part. >>> >>> Could it be the cause? >>> >>> Matteo >>> >>> >>> On 19/mar/2013, at 21:24, Simon <si...@potwells.co.uk> wrote: >>> >>>> ...or you are touching the session object outside the RR loop. the classic >>>> gotcha is rendering a component in a thread that touches the session in >>>> some way e.g. delivering an email in a thread that uses a component to >>>> render it's content... been caught by that one soooo many times! >>>> >>>> >>>> On 19 March 2013 17:51, Chuck Hill <ch...@global-village.net> wrote: >>>> Hi Matteo, >>>> >>>> You have one or more Zombie (aka Immortal) Sessions, as shown by stack >>>> traces like this: >>>> "WorkerThread11" prio=10 tid=0x0000000041848800 nid=0x1010 in >>>> Object.wait() [0x00007f16f7cfa000] >>>> java.lang.Thread.State: WAITING (on object monitor) >>>> at java.lang.Object.wait(Native Method) >>>> - waiting on <0x00000000d120b328> (a >>>> com.webobjects.appserver.WOSessionStore$TimeoutEntry) >>>> at java.lang.Object.wait(Object.java:485) >>>> at >>>> com.webobjects.appserver.WOSessionStore.checkOutSessionWithID(WOSessionStore.java:191) >>>> - locked <0x00000000d120b328> (a >>>> com.webobjects.appserver.WOSessionStore$TimeoutEntry) >>>> at >>>> com.webobjects.appserver.WOApplication.restoreSessionWithID(WOApplication.java:1913) >>>> at >>>> er.extensions.appserver.ERXApplication.restoreSessionWithID(ERXApplication.java:2403) >>>> at >>>> er.extensions.appserver.ERXWOContext.existingSession(ERXWOContext.java:57) >>>> at >>>> er.extensions.appserver.ERXWOContext.hasSession(ERXWOContext.java:69) >>>> at >>>> com.webobjects.appserver.WOAction.existingSession(WOAction.java:190) >>>> at com.tla.calendar.DirectAction.goToAction(DirectAction.java:454) >>>> >>>> >>>> This likely has one of two causes: >>>> 1. The application is getting OutOfMemory errors, which can leave the >>>> session store in an insane state >>>> 2. The app is throwing an exception from sleep() in Session. If you >>>> overrride sleep() it should use a try...finally block >>>> >>>> public void sleep() { >>>> try { >>>> // Your code here! >>>> } finally { >>>> super.sleep(); >>>> } >>>> } >>>> >>>> >>>> Chuck >>>> >>>> >>>> >>>> On 2013-03-19, at 9:38 AM, Altera WO Team wrote: >>>> >>>>> Hi all, >>>>> >>>>> I'm having a strange issue on a WO installation on EC2 (oracle jvm). >>>>> Same strange application which had immortal sessions… >>>>> >>>>> Sometimes (quite rarely) a bounced application (put in refuse new >>>>> sessions) never quits and it's not accessible from JavaMonitor. >>>>> If I look at the logs i see: >>>>> >>>>> Mar 19 12:38:52 B2C[2002] (ERXNSLogLog4jBridge.java:44) WARN NSLog - >>>>> <com.tla.calendar.Application>: refusing new clients and below min active >>>>> session threshold >>>>> Mar 19 12:38:52 B2C[2002] (ERXNSLogLog4jBridge.java:44) WARN NSLog - >>>>> <com.tla.calendar.Application>: about to terminate... >>>>> >>>>> The only thing left is to kill the instance… Which is not nice. >>>>> >>>>> I'm not overriding the terminate() method in Application. >>>>> >>>>> I am attaching a stack trace if it helps. >>>>> <B2Cjstack.txt> >>>>> >>>>> Thanks, >>>>> >>>>> >>>>> >>>>> Matteo Centro >>>>> _______________________________________________ >>>>> Do not post admin requests to the list. They will be ignored. >>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>>> Help/Unsubscribe/Update your Subscription: >>>>> https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net >>>>> >>>>> This email sent to ch...@global-village.net >>>> >>>> -- >>>> Chuck Hill >>>> Executive Managing Partner, VP Development and Technical Services >>>> >>>> Practical WebObjects - for developers who want to increase their overall >>>> knowledge of WebObjects or who are trying to solve specific problems. >>>> http://www.global-village.net/gvc/practical_webobjects >>>> >>>> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest >>>> Growing Companies in B.C! >>>> Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking of >>>> Canada’s Fastest-Growing Companies by PROFIT Magazine! >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/webobjects-dev/simon%40potwells.co.uk >>>> >>>> This email sent to si...@potwells.co.uk >>>> >>> >>> >> >> -- >> Chuck Hill >> Executive Managing Partner, VP Development and Technical Services >> >> Practical WebObjects - for developers who want to increase their overall >> knowledge of WebObjects or who are trying to solve specific problems. >> http://www.global-village.net/gvc/practical_webobjects >> >> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest >> Growing Companies in B.C! >> Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking of >> Canada’s Fastest-Growing Companies by PROFIT Magazine! >> >> >> >> >> >> >> >> >> >> >> > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/mastermind%40knuckleheads.net > > This email sent to masterm...@knuckleheads.net _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com