Thanks for the reply. I tried that as shown below and I still get the
stack track.

jdbc:h2:tcp://localhost/mem:test-db;create=true;DB_CLOSE_ON_EXIT=FALSE

I don't know if I mentioned before that I'm using EclipseLink. I'm not
sure if that is relevant or not.

Here is the full stack trace in case it is helpful:

^Corg.h2.jdbc.JdbcSQLException: Connection is broken: "session
closed" [90067-164]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:
329)
        at org.h2.message.DbException.get(DbException.java:169)
        at org.h2.message.DbException.get(DbException.java:146)
        at org.h2.engine.SessionRemote.checkClosed(SessionRemote.java:500)
        at org.h2.engine.SessionRemote.removeServer(SessionRemote.java:431)
        at org.h2.command.CommandRemote.prepare(CommandRemote.java:80)
        at org.h2.command.CommandRemote.<init>(CommandRemote.java:46)
        at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:437)
        at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:
1121)
        at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:164)
        at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:152)
        at org.h2.server.web.DbStarter.contextDestroyed(DbStarter.java:74)
        at
org.eclipse.jetty.server.handler.ContextHandler.doStop(ContextHandler.java:
806)
        at
org.eclipse.jetty.servlet.ServletContextHandler.doStop(ServletContextHandler.java:
153)
        at org.eclipse.jetty.webapp.WebAppContext.doStop(WebAppContext.java:
478)
        at
org.mortbay.jetty.plugin.JettyWebAppContext.doStop(JettyWebAppContext.java:
264)
        at
org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:
84)
        at
org.eclipse.jetty.server.handler.HandlerCollection.doStop(HandlerCollection.java:
245)
        at
org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:
84)
        at
org.eclipse.jetty.server.handler.HandlerCollection.doStop(HandlerCollection.java:
245)
        at
org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:
84)
        at
org.eclipse.jetty.server.handler.HandlerWrapper.doStop(HandlerWrapper.java:
102)
        at org.eclipse.jetty.server.Server.doStop(Server.java:324)
        at
org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:
84)
        at
org.eclipse.jetty.util.thread.ShutdownThread.run(ShutdownThread.java:
124)
2012-02-14
07:51:35.671:INFO:oejsl.ELContextCleaner:javax.el.BeanELResolver
purged
2012-02-14 07:51:35.671:INFO:oejsh.ContextHandler:stopped
o.m.j.p.JettyWebAppContext{/test,file:/Users/zaraki/tmp/test-tmp/test-
db/src/main/webapp/},file:/Users/zaraki/tmp/test-tmp/test-db/src/main/
webapp/
[INFO] Jetty server exiting.
On Feb 14, 1:29 am, Noel Grandin <noelgran...@gmail.com> wrote:
> sounds like the Jetty exit handler is running after the H2 exit handler.
> Try adding this to the JDBC URL
>
> ;DB_CLOSE_ON_EXIT=FALSE
>
> Seehttp://www.h2database.com/html/features.html#connection_modes
>
> On 2012-02-14 05:07, zaraki kenpachi wrote:
>
>
>
>
>
>
>
> > I am running an in memory database using the servlet for a testing
> > environment. The db disappears when the jvm goes away. This works
> > great for our testing. We use Maven and a simple mvn jetty:run will
> > bring up the web app, the db, and the web based console.
>
> > The problem comes when shutting down. If I stop Jetty with mvn
> > jetty:stop or by just doing a control+c I get the following error:
>
> > Killing Jetty
> > org.h2.jdbc.JdbcSQLException: Connection is broken: "session
> > closed" [90067-164]
> >    at org.h2.message.DbException.getJdbcSQLException(DbException.java:
> > 329)
> >    at org.h2.message.DbException.get(DbException.java:169)
> >    at org.h2.message.DbException.get(DbException.java:146)
> >    at org.h2.engine.SessionRemote.checkClosed(SessionRemote.java:500)
> >    at org.h2.engine.SessionRemote.removeServer(SessionRemote.java:431)
> >    at org.h2.command.CommandRemote.prepare(CommandRemote.java:80)
> >    at org.h2.command.CommandRemote.<init>(CommandRemote.java:46)
> >    at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:437)
> >    at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:
> > 1121)
> >    at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:164)
> >    at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:152)
> >    at org.h2.server.web.DbStarter.contextDestroyed(DbStarter.java:74)
> >          ..... etc......
>
> > It almost seems like org.h2.server.web.DbStarter is trying to shutdown
> > the db server, but finding that the db already shut down on its own
> > when it saw the jvm going away. I've fiddled with a bunch of the
> > settings in web.xml, but haven't been able to avoid this error. It all
> > seems to work ok, but some of the team members are freaking out at the
> > stack trace.
>
> > Any suggestions?  My settings are shown below.
>
> > The url is: jdbc:h2:tcp://localhost/mem:test-db;create=true
>
> > web.xml includes:
>
> >    <listener>
> >    <listener-class>org.h2.server.web.DbStarter</listener-class>
> >    </listener>
>
> > <context-param>
> >    <param-name>db.url</param-name>
> >    <param-value>jdbc:h2:tcp://localhost/mem:test-db;create=true</
> > param-value>
> >    </context-param>
> >    <context-param>
> >    <param-name>db.user</param-name>
> >    <param-value>sa</param-value>
> >    </context-param>
> >    <context-param>
> >    <param-name>db.password</param-name>
> >    <param-value>sa</param-value>
> >    </context-param>
> >    <context-param>
> >    <param-name>db.tcpServer</param-name>
> >    <param-value>-tcpAllowOthers</param-value>
> >    </context-param>
>
> >    <servlet>
> >    <servlet-name>H2Console</servlet-name>
> >    <servlet-class>org.h2.server.web.WebServlet</servlet-class>
> >    <load-on-startup>1</load-on-startup>
> >    </servlet>
> >    <servlet-mapping>
> >    <servlet-name>H2Console</servlet-name>
> >    <url-pattern>/console/*</url-pattern>
> >    </servlet-mapping>

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to h2-database@googlegroups.com.
To unsubscribe from this group, send email to 
h2-database+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to