incubator-esme-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard Hirsch <hirsch.d...@gmail.com>
Subject Re: Tomcat/ESME: Shutdown Problems
Date Fri, 05 Feb 2010 06:08:37 GMT
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
<uday.subbarayan@yahoo.com> 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 <esjewett@gmail.com> wrote:
>
> From: Ethan Jewett <esjewett@gmail.com>
> Subject: Re: Tomcat/ESME: Shutdown Problems
> To: esme-dev@incubator.apache.org
> 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 <hirsch.dick@gmail.com> 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 <hirsch.dick@gmail.com> 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 <hirsch.dick@gmail.com>
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
>>>> <uday.subbarayan@yahoo.com> 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 <hirsch.dick@gmail.com> wrote:
>>>>>
>>>>> From: Richard Hirsch <hirsch.dick@gmail.com>
>>>>> Subject: Re: Tomcat/ESME: Shutdown Problems
>>>>> To: esme-dev@incubator.apache.org
>>>>> 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
>>>>> <uday.subbarayan@yahoo.com> 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 <hirsch.dick@gmail.com>
wrote:
>>>>>>
>>>>>> From: Richard Hirsch <hirsch.dick@gmail.com>
>>>>>> Subject: Re: Tomcat/ESME: Shutdown Problems
>>>>>> To: esme-dev@incubator.apache.org
>>>>>> 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 <hirsch.dick@gmail.com>
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
>>>>>>> <uday.subbarayan@yahoo.com> 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 <hirsch.dick@gmail.com>
wrote:
>>>>>>>>
>>>>>>>> From: Richard Hirsch <hirsch.dick@gmail.com>
>>>>>>>> Subject: Re: Tomcat/ESME: Shutdown Problems
>>>>>>>> To: esme-dev@incubator.apache.org
>>>>>>>> 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
>>>>>>>> <uday.subbarayan@yahoo.com> 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.ThreadLocal@13f79f7])
and a
>>>>>>>>> value of type [org.apache.derby.iapi.services.context.ContextManager]
>>>>>>>>> (value [org.apache.derby.iapi.services.context.ContextManager@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)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
>
>
>

Mime
View raw message