Thanks for the quick turnaround! On Dec 31, 1:41 pm, David Pollak <[email protected]> wrote: > The simplest way around this issue is: > > new StandardDBVendor(Props.get("db.driver") openOr "org.h2.Driver", > Props.get("db.url") openOr > "jdbc:h2:lift_proto.db;AUTO_SERVER=TRUE", > Props.get("db.user"), > Props.get("db.password")) > > Note the ";AUTO_SERVER=TRUE" part of the DB URL. This makes the H2 > restart issue go away. There's an additional issue of ActorPing which > is not restarting correctly. I've got a fix for that as well and I'll > have the code up on review board in a little while. > > On Dec 31, 10:13 am, David Pollak <[email protected]> > wrote: > > > > > On Wed, Dec 30, 2009 at 5:15 PM, Nathan Parry <[email protected]> wrote: > > > Searching turned up a few older threads similar to the problem I'm > > > seeing, but I couldn't find any solution. > > > > Using just the skeleton project created by lift-archetype-basic, I'm > > > getting these exceptions out of jetty: > > > > org.h2.jdbc.JdbcSQLException: Database may be already in use: Locked > > > by another process. Possible solutions: close all other connection(s); > > > use the server mode [90020-121] > > > > ERROR - Failed to Boot > > > java.lang.NullPointerException: Looking for Connection Identifier > > > ConnectionIdentifier(lift) but failed to find either a JNDI data > > > source with the name lift or a lift connection manager with the > > > correct name > > > > Once this happens, the app is non-functional. This occurs whenever > > > jetty restarts due to updated code. I can trigger the issue by: > > > > 1. Running mvn jetty:run in one console > > > 2. Running mvn scala:cc in another console > > > 3. Running touch src/main/scala/bootstrap/liftweb/Boot.scala in a 3rd > > > console > > > Thanks for the repro case. I've opened a ticket on the > > issue:http://github.com/dpp/liftweb/issues/#issue/266 > > > > This causes a recompilation, which causes a jetty restart, which blows > > > up with the exceptions. > > > > Has anybody else seen or fixed this issue? Should it be useful, I've > > > stashed the project at > > >http://nparry.com/posted_files/jetty_lift_issues/lifttest.tgz > > > including a jetty.log of the output with the full stack traces. > > > > Wandering into wild-speculation territory (AKA speak and remove all > > > doubt) ... > > > > Based on the jdbc exception, I poked around in the DB code - looking > > > at ProtoDBVendor I couldn't see how connections in 'pool' would ever > > > be released. Thus I tried a quick hack in my project to force the > > > pool to be empty... > > > > DB.defineConnectionManager(DefaultConnectionIdentifier, > > > new StandardDBVendor( > > > Props.get("db.driver") openOr > > > "org.h2.Driver", > > > Props.get("db.url") openOr > > > "jdbc:h2:lift_proto.db", > > > Props.get("db.user"), > > > Props.get("db.password")) { > > > override def maxPoolSize = 0 > > > }) > > > > This obviously is not a good solution, but it does seem to clear up > > > the exceptions when jetty restarts - the theory being that during > > > shutdown the old connections are not closed, leading to errors during > > > restart since the new connection can't be created. Forcing an empty > > > pool means there is no old connection around to trigger the problem. > > > > I guess the question out of all that would be - do we need (or is > > > there already) a shutdown hook to correspond to the boot hook? This > > > would allow for cleanup in this sort of situation (ie, close any > > > connections left in the pool). > > > > -- > > > Nathan > > > > -- > > > > You received this message because you are subscribed to the Google Groups > > > "Lift" group. > > > To post to this group, send email to [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]<liftweb%[email protected] > > > > > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/liftweb?hl=en. > > > -- > > Lift, the simply functional web frameworkhttp://liftweb.net > > Beginning Scalahttp://www.apress.com/book/view/1430219890 > > Follow me:http://twitter.com/dpp > > Surf the harmonics
-- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.
