I strongly agree with the suggestion for a MySQL replication slave server. They 
are not that hard to set up and then you can dump a backup as often as you like 
with out effecting the main server and you always have an up to the minute copy 
incase something happens. I had a problem a couple of months ago and going to a 
backup up that was just a couple of hours old was a major loss.

Steve

On Apr 3, 2013, at 2:16 PM, Kieran Kelleher <kelleh...@gmail.com> wrote:

> Another longer term option is to have a MySQL replication slave server that 
> performs backup snapshots as needed (hourly, daily, weekly).
> 
> On Apr 3, 2013, at 1:32 PM, Altera WO Team <webobje...@altera.it> wrote:
> 
>> Hi all,
>> 
>> I finally solved the problem… well, not really but I found out the reason. 
>> Turns out that the whole thing is on amazon boxes and the DB machine (MySQL) 
>> was being backed up every hour… The backup takes all the cpu (not the 
>> backup, the bzip2 of the backup) and locks up MySQL for 2 minutes, if an 
>> instance tries to access the db in those 2 minutes that instance won't be 
>> able to die properly. 
>> Solution? I removed the hourly backup which was useless and scheduled a 
>> nightly backup with a reniced bzip2. No issues from that day!
>> 
>> Thanks everybody for the help.
>> 
>> Matteo
>> 
>>> 
>>> On 21/mar/2013, at 19:19, Chuck Hill <ch...@global-village.net> wrote:
>>> 
>>>> 
>>>> On 2013-03-21, at 10:54 AM, Altera WO Team wrote:
>>>> 
>>>>> 
>>>>> On 21/mar/2013, at 18:46, Chuck Hill <ch...@global-village.net> wrote:
>>>>> 
>>>>>> 
>>>>>> On 2013-03-21, at 6:47 AM, Altera WO Team wrote:
>>>>>> 
>>>>>>> I tried anyway and I can confirm. I'm not creating needless sessions. 
>>>>>>> 
>>>>>>> The app locks up anyway though… 
>>>>>> 
>>>>>> Did adding the finally blocks in your terminate() method help?  Is 
>>>>>> anything in your code calling session.terminate() directly?  A logout 
>>>>>> link?
>>>>> 
>>>>> the finally blocks didn't help.
>>>>> 
>>>>> Something is calling session.terminate() directly though, happens when a 
>>>>> something bad happens in a direct action.
>>>>> 
>>>>>                   if (existingSession() != null)
>>>>>                           sess().terminate();
>>>>> 
>>>>> It's called only if we can't parse the parameters and should never 
>>>>> happen. I'll put some logging in those cases. 
>>>>> 
>>>>> Why should this be a problem?
>>>> 
>>>> I thought it was fixed in 5.4.3, but I could be wrong.  In some past 
>>>> version if that same URL can in in rapid succession, you would get 
>>>> deadlocks like you are seeing.  The solution at the time was to not call 
>>>> terminate directly and instead set the session timeout to a couple 
>>>> seconds.  That allowed both requests to clear before terminating the 
>>>> session.
>>>> 
>>>> 
>>>> Chuck
>>>> 
>>>> 
>>>>>>> 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?
>>>>>> 
>>>>>> I don't recall how ERTimeToKill works, but with those stuck threads you 
>>>>>> are going to need to do
>>>>>> 
>>>>>> Runtime.getRuntime().exit(1);
>>>>>> 
>>>>>> and if THAT does not kill it, this should:
>>>>>> 
>>>>>> Runtime.getRuntime().halt(1);
>>>>>> 
>>>>>> 
>>>>>> Chuck
>>>>>>> 
>>>>>>> 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!
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> -- 
>>>>>> 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!
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>>> -- 
>>>> 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/kelleherk%40gmail.com
>> 
>> This email sent to kelleh...@gmail.com
> 
> 
> _______________________________________________
> 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/speery%40me.com
> 
> This email sent to spe...@me.com


 _______________________________________________
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