If you try it on jetty, I saw there was a way to solve the problem via
a change in the pom.xml. There was a post on the lift list about derby
and jetty. It sounded just like your problem on Tomcat.

BTW, when we change this in the next release we should probably
simplify the use of properties regarding the database. IMHO, it is
currently too complicated

D.

On Thu, Feb 4, 2010 at 7:10 PM, Uday Subbarayan
<[email protected]> wrote:
> Thanks Ethan & Richard. I need to understand this Scala first :-)
>
> I am going to give it a try in Jetty but this looks to me a basic problem 
> (independent of any containers)! All open db connections needs to be closed 
> properly.
>
> Best,
> -Uday.
>
> -------------------------
>
> I do not blog but e-write:
>
> http://uds-web.blogspot.com
>
> --- On Thu, 2/4/10, Ethan Jewett <[email protected]> wrote:
>
> From: Ethan Jewett <[email protected]>
> Subject: Re: Tomcat/ESME: Shutdown Problems
> To: [email protected]
> Date: Thursday, February 4, 2010, 5:25 PM
>
> I've added this info to the Jira ticket. Uday, if you want to add more
> detail to the Jira ticket (or even submit a patch for the issue to the
> ticket...), that would be great!
>
> Ethan
>
> On Thu, Feb 4, 2010 at 10:56 AM, Richard Hirsch <[email protected]> wrote:
>> I just looked and if we want to use the StandardDBVendor we will have
>> to rewrite the object DBVendor to use the StandardDBVendor.
>>
>> Here is a blog with details / examples:
>> http://jgoday.wordpress.com/2009/12/25/lift-testing-with-dbunit-and-specs/
>>
>> This means it goes in the next release.
>>
>> D.
>>
>> On Thu, Feb 4, 2010 at 4:36 PM, Richard Hirsch <[email protected]> wrote:
>>> sorry. That isn't going to work.
>>>
>>> We need to use the StandardDBVendor class first.
>>>
>>> On Thu, Feb 4, 2010 at 4:34 PM, Richard Hirsch <[email protected]> 
>>> wrote:
>>>> LiftRules.unloadHooks.append(() => dbVendor.closeAllConnections_!())
>>>>
>>>> "dbVendor" instead of "DBVendor"
>>>> ---------------
>>>> http://wiki.liftweb.net/index.php/FAQ
>>>>
>>>> How do I execute code when my application is unloaded?
>>>>
>>>> You can define methods to be called when Lift is unloaded via the
>>>> LiftRules object in the Boot class.
>>>>
>>>> For example:
>>>>
>>>> def myUnloader(): Unit = {
>>>>  // run when Lift is being unloaded
>>>> }
>>>>
>>>> LiftRules.unloadHooks += myUnloader _
>>>>
>>>>
>>>>
>>>> On Thu, Feb 4, 2010 at 4:24 PM, Uday Subbarayan
>>>> <[email protected]> wrote:
>>>>> I am new to Scala. I need some time to make this work. I changed this 
>>>>> line of code to,
>>>>>
>>>>> [WARNING] 
>>>>> /home/uday/projects/M1/Prototype/esme/esme/trunk/server/src/main/scala/bootstrap/liftweb/Boot.scala:300:
>>>>>  error: value closeAllConnections_! is not a member of object 
>>>>> bootstrap.liftweb.DBVendor
>>>>>
>>>>> [WARNING]     LiftRules.unloadHooks.append(() => 
>>>>> DBVendor.closeAllConnections_!())
>>>>>                         ^
>>>>> [WARNING] one error found
>>>>>
>>>>> & build FAILS.
>>>>>
>>>>> I put it under,
>>>>>
>>>>> def releaseConnection(conn: Connection): Unit = synchronized {
>>>>>     pool = conn :: pool
>>>>>     LiftRules.unloadHooks.append(() => DBVendor.closeAllConnections_!())
>>>>>     notify
>>>>>   }
>>>>>
>>>>> & NOT sure whether this is the right place too.
>>>>>
>>>>> Best,
>>>>> Uday.
>>>>> -------------------------
>>>>>
>>>>> I do not blog but e-write:
>>>>>
>>>>> http://uds-web.blogspot.com
>>>>>
>>>>> --- On Thu, 2/4/10, Richard Hirsch <[email protected]> wrote:
>>>>>
>>>>> From: Richard Hirsch <[email protected]>
>>>>> Subject: Re: Tomcat/ESME: Shutdown Problems
>>>>> To: [email protected]
>>>>> Date: Thursday, February 4, 2010, 3:58 AM
>>>>>
>>>>> More ideas from the lift list:
>>>>>
>>>>> "You can also add to Boot.scala (given that the StandardDBVendor is
>>>>> called dbVendor):
>>>>>
>>>>> LiftRules.unloadHooks.append(() => dbVendor.closeAllConnections_!())
>>>>>
>>>>> What this will do is close all the DB connections when the context is 
>>>>> unloaded.
>>>>>
>>>>> Additionally, you can switch to H2 which is generally more stable than 
>>>>> Derby
>>>>> in my experience."
>>>>>
>>>>> Why don't you try adding the line above to Boot.scala to see if it helps.
>>>>>
>>>>> I've also added a Jira item to deal with the problem:
>>>>> https://issues.apache.org/jira/browse/ESME-155
>>>>>
>>>>> D.
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Feb 3, 2010 at 11:05 PM, Uday Subbarayan
>>>>> <[email protected]> wrote:
>>>>>> Tomcat didn't shutdown. I did kill -9 on the process.
>>>>>>
>>>>>> Uday.
>>>>>>
>>>>>> -------------------------
>>>>>>
>>>>>> I do not blog but e-write:
>>>>>>
>>>>>> http://uds-web.blogspot.com
>>>>>>
>>>>>> --- On Wed, 2/3/10, Richard Hirsch <[email protected]> wrote:
>>>>>>
>>>>>> From: Richard Hirsch <[email protected]>
>>>>>> Subject: Re: Tomcat/ESME: Shutdown Problems
>>>>>> To: [email protected]
>>>>>> Date: Wednesday, February 3, 2010, 8:00 PM
>>>>>>
>>>>>> I got a comment back from David Pollack on the lift list:
>>>>>>
>>>>>> http://groups.google.com/group/liftweb/browse_thread/thread/bf498414b18d4226/4299ce36a03749f0?show_docid=4299ce36a03749f0
>>>>>>
>>>>>> Was the tomcat process really shutdown or did it hang and you had to 
>>>>>> kill it.
>>>>>>
>>>>>> D.
>>>>>>
>>>>>> On Wed, Feb 3, 2010 at 8:41 PM, Richard Hirsch <[email protected]> 
>>>>>> wrote:
>>>>>>> No problem in jetty but I remember having problems on occasion with
>>>>>>> derby and tomcat. If I remember correctly, I sometimes had problems
>>>>>>> during hot deploys.
>>>>>>>
>>>>>>> D.
>>>>>>>
>>>>>>> On Wed, Feb 3, 2010 at 7:54 PM, Uday Subbarayan
>>>>>>> <[email protected]> wrote:
>>>>>>>> Thanks. Did you try to shutting down & starting your container with 
>>>>>>>> ESME? Just want to make sure that it's not my local environment 
>>>>>>>> problem.
>>>>>>>>
>>>>>>>> Best,
>>>>>>>> Uday.
>>>>>>>>
>>>>>>>> -------------------------
>>>>>>>>
>>>>>>>> I do not blog but e-write:
>>>>>>>>
>>>>>>>> http://uds-web.blogspot.com
>>>>>>>>
>>>>>>>> --- On Wed, 2/3/10, Richard Hirsch <[email protected]> wrote:
>>>>>>>>
>>>>>>>> From: Richard Hirsch <[email protected]>
>>>>>>>> Subject: Re: Tomcat/ESME: Shutdown Problems
>>>>>>>> To: [email protected]
>>>>>>>> Date: Wednesday, February 3, 2010, 6:13 PM
>>>>>>>>
>>>>>>>> looks like a lift problem that might be occur when the container shuts 
>>>>>>>> down..
>>>>>>>>
>>>>>>>> I just posted on the issue on the Lift Google Group. I'm hopeful that
>>>>>>>> someone there has an idea.
>>>>>>>>
>>>>>>>> D.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Feb 3, 2010 at 4:30 PM, Uday Subbarayan
>>>>>>>> <[email protected]> wrote:
>>>>>>>>> After I shutdown Tomcat, i see that there is lot's of stack trace in 
>>>>>>>>> the log file. I also noticed that derby is not getting shutdown. Next 
>>>>>>>>> time, when i restart Tomcat, ESME fails to load. I get all kinds of 
>>>>>>>>> exception in the browser.
>>>>>>>>>
>>>>>>>>> Once i manually kill -9 on the java process then everything works 
>>>>>>>>> fine.. Here is the (partial) stack trace from the log file. Yahoo 
>>>>>>>>> email is not allowing me to post full stack.
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>> Uday.
>>>>>>>>>
>>>>>>>>> ================
>>>>>>>>> SEVERE:
>>>>>>>>> A web application created a ThreadLocal with key of type
>>>>>>>>> [java.lang.ThreadLocal] (value [java.lang.threadlo...@13f79f7]) and a
>>>>>>>>> value of type [org.apache.derby.iapi.services.context.ContextManager]
>>>>>>>>> (value [org.apache.derby.iapi.services.context.contextmana...@b52a28])
>>>>>>>>> but failed to remove it when the web application was stopped. To
>>>>>>>>> prevent a memory leak, the ThreadLocal has been forcibly removed.
>>>>>>>>> Feb 3, 2010 7:04:57 AM
>>>>>>>>>  org.apache.coyote.http11.Http11Protocol destroy
>>>>>>>>> INFO: Stopping Coyote HTTP/1.1 on http-8080
>>>>>>>>> Exception in thread "pool-2-thread-14" java.lang.NullPointerException
>>>>>>>>>     at scala.runtime.BoxesRunTime.boxToLong(Unknown Source)
>>>>>>>>>     at 
>>>>>>>>> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$wrapQuery$1.apply(S.scala:972)
>>>>>>>>>     at 
>>>>>>>>> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$wrapQuery$1.apply(S.scala:972)
>>>>>>>>>     at scala.List.foreach(List.scala:841)
>>>>>>>>>     at net.liftweb.http.S$.net$liftweb$http$S$$wrapQuery(S.scala:972)
>>>>>>>>>     at 
>>>>>>>>> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$$anonfun$apply$25.apply(S.scala:1109)
>>>>>>>>>     at net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:906)
>>>>>>>>>     at 
>>>>>>>>> net.liftweb.http.S$$anonfun$net$liftweb$http$S$$doAround$1..apply(S.scala:907)
>>>>>>>>>     at
>>>>>>>>>  net.liftweb.mapper.MetaProtoExtendedSession$myWrapper$.apply(ProtoExtendedSession.scala:80)
>>>>>>>>>     at net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:907)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
>
>
>

Reply via email to