Yes I had an open thread on this issue but it's not being seen as a real issue.
http://groups.google.com/group/liftweb/browse_thread/thread/78454f767280b4b5/d0f462593ae77072?hl=en#d0f462593ae77072 On Dec 30, 7:15 pm, Nathan Parry <npa...@gmail.com> 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 > > 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 > athttp://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 lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.