On 21/mar/2013, at 15:25, George Domurot <masterm...@knuckleheads.net> wrote:

> 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().

No, we never touch session() in the e-mail component. 
We create a context because we couldn't figure out how to instantiate a 
Component from outside the R-R loop, the mail component is only used to compose 
the e-mail….

> 
> 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;
>            }
>        }

Thanks for that,


Matteo


> 
> -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

Reply via email to