[jboss-svn-commits] JBL Code SVN: r19948 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/dependencies.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed May 14 07:06:16 EDT 2008
Author: kevin.conner at jboss.com
Date: 2008-05-14 07:06:16 -0400 (Wed, 14 May 2008)
New Revision: 19948
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/dependencies/H2Database.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/dependencies/H2DatabaseMBean.java
Log:
Fix shutdown of H2 database: JBESB-1712
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/dependencies/H2Database.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/dependencies/H2Database.java 2008-05-14 11:06:06 UTC (rev 19947)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/dependencies/H2Database.java 2008-05-14 11:06:16 UTC (rev 19948)
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
+import java.sql.Statement;
import org.jboss.system.ServiceMBeanSupport;
import org.jboss.system.server.ServerConfigLocator;
@@ -59,6 +60,9 @@
/** JDBC in memory URL prefix: <code>jdbc:h2:mem:</code>. */
private static final String JDBC_MEM_URL_PREFIX = JDBC_URL_PREFIX + "mem:";
+ /** JDBC flags */
+ private static final String DEFAULT_FLAGS = ";MVCC=TRUE;DB_CLOSE_ON_EXIT=FALSE" ;
+
/** Default data subdir: <code>h2</code>. */
private static final String H2_DATA_DIR = "h2";
@@ -82,6 +86,9 @@
/** Database password. */
private String password = DEFAULT_PASSWORD;
+ /** Database flags */
+ private String flags = DEFAULT_FLAGS ;
+
/** Hold a connection for in memory h2. */
private Connection connection;
@@ -172,6 +179,16 @@
}
/**
+ * @return the flags
+ *
+ * @jmx.managed-attribute
+ */
+ public String getFlags()
+ {
+ return flags;
+ }
+
+ /**
* @param password
*
* @jmx.managed-attribute
@@ -199,6 +216,20 @@
this.user = user;
}
+ /**
+ * @param flags
+ *
+ * @jmx.managed-attribute
+ */
+ public void setFlags(String flags)
+ {
+ if (flags == null)
+ {
+ flags = DEFAULT_FLAGS;
+ }
+ this.flags = flags;
+ }
+
// Lifecycle -----------------------------------------------------
/**
@@ -244,11 +275,10 @@
dbPath = new File(h2Dir, name);
- final String dbURL = JDBC_URL_PREFIX + dbPath.toURI().toString();
+ final String dbURL = JDBC_URL_PREFIX + dbPath.toURI().toString() + flags ;
- // Check wee have connectivity
- final Connection connection = getConnection(dbURL);
- connection.close() ;
+ // Check we have connectivity
+ connection = getConnection(dbURL);
}
/**
@@ -256,7 +286,7 @@
*/
private void startInMemoryDatabase() throws Exception
{
- final String dbURL = JDBC_MEM_URL_PREFIX + name;
+ final String dbURL = JDBC_MEM_URL_PREFIX + name + flags ;
// hold a connection so h2 does not close the database
connection = getConnection(dbURL);
@@ -267,7 +297,15 @@
*/
private void stopStandaloneDatabase() throws Exception
{
- // Nothing to do here
+ try
+ {
+ final Statement stmt = connection.createStatement() ;
+ stmt.execute("shutdown") ;
+ }
+ finally
+ {
+ connection = null;
+ }
log.info("Database standalone closed clean");
}
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/dependencies/H2DatabaseMBean.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/dependencies/H2DatabaseMBean.java 2008-05-14 11:06:06 UTC (rev 19947)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/dependencies/H2DatabaseMBean.java 2008-05-14 11:06:16 UTC (rev 19948)
@@ -68,4 +68,8 @@
/** In memory mode */
boolean isInMemoryMode() ;
void setInMemoryMode(boolean b) ;
+
+ /** The flags to use when connecting to the DB, default is "" */
+ String getFlags();
+ void setFlags(String flags);
}
More information about the jboss-svn-commits
mailing list