Author: jflesch
Date: 2007-08-21 11:22:24 +0000 (Tue, 21 Aug 2007)
New Revision: 14821
Modified:
trunk/apps/Thaw/src/thaw/plugins/Hsqldb.java
trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java
Log:
Compact the database when disconnecting
Modified: trunk/apps/Thaw/src/thaw/plugins/Hsqldb.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/Hsqldb.java 2007-08-21 10:24:12 UTC
(rev 14820)
+++ trunk/apps/Thaw/src/thaw/plugins/Hsqldb.java 2007-08-21 11:22:24 UTC
(rev 14821)
@@ -68,6 +68,8 @@
public void disconnect() throws java.sql.SQLException {
synchronized(dbLock) {
+ connection.commit();
+ executeQuery("SHUTDOWN COMPACT");
connection.close();
connection = null;
}
@@ -82,10 +84,7 @@
Logger.info(this, "Disconnecting from the database ...");
try {
- connection.commit();
- executeQuery("SHUTDOWN");
-
- connection.close();
+ disconnect();
} catch(final java.sql.SQLException e) {
Logger.error(this, "SQLException while closing
connection !");
e.printStackTrace();
Modified: trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java 2007-08-21 10:24:12 UTC
(rev 14820)
+++ trunk/apps/Thaw/src/thaw/plugins/SqlConsole.java 2007-08-21 11:22:24 UTC
(rev 14821)
@@ -237,85 +237,87 @@
return;
}
- final java.sql.Statement st =
hsqldb.getConnection().createStatement();
+ synchronized(hsqldb.dbLock) {
+ final java.sql.Statement st =
hsqldb.getConnection().createStatement();
- ResultSet result;
+ ResultSet result;
- if(!"drop_tables".equals( cmd.toLowerCase() )) {
- if(st.execute(cmd))
- result = st.getResultSet();
- else {
+ if(!"drop_tables".equals( cmd.toLowerCase() )) {
+ if(st.execute(cmd))
+ result = st.getResultSet();
+ else {
+ addToConsole("Ok\n");
+ return;
+ }
+ } else {
+
thaw.plugins.index.DatabaseManager.dropTables(hsqldb);
+
thaw.plugins.TransferLogs.dropTables(hsqldb);
addToConsole("Ok\n");
return;
}
- } else {
-
thaw.plugins.index.DatabaseManager.dropTables(hsqldb);
- thaw.plugins.TransferLogs.dropTables(hsqldb);
- addToConsole("Ok\n");
- return;
- }
- if(result == null) {
- addToConsole("(null)\n");
- return;
- }
+ if(result == null) {
+ addToConsole("(null)\n");
+ return;
+ }
- if(result.getFetchSize() == 0) {
- addToConsole("(done)\n");
- return;
- }
+ if(result.getFetchSize() == 0) {
+ addToConsole("(done)\n");
+ return;
+ }
- java.sql.SQLWarning warning = result.getWarnings();
+ java.sql.SQLWarning warning =
result.getWarnings();
- while(warning != null) {
- addToConsole("Warning: "+warning.toString());
- warning = warning.getNextWarning();
- }
+ while(warning != null) {
+ addToConsole("Warning:
"+warning.toString());
+ warning = warning.getNextWarning();
+ }
- final ResultSetMetaData metadatas =
result.getMetaData();
+ final ResultSetMetaData metadatas =
result.getMetaData();
- final int nmbCol = metadatas.getColumnCount();
+ final int nmbCol = metadatas.getColumnCount();
- addToConsole(" ");
+ addToConsole(" ");
- for(int i = 1; i <= nmbCol ; i++) {
- display(metadatas.getColumnLabel(i),
metadatas.getColumnDisplaySize(i));
- addToConsole(" ");
- }
- addToConsole("\n");
+ for(int i = 1; i <= nmbCol ; i++) {
+ display(metadatas.getColumnLabel(i),
metadatas.getColumnDisplaySize(i));
+ addToConsole(" ");
+ }
+ addToConsole("\n");
- addToConsole(" ");
- for(int i = 1; i <= nmbCol ; i++) {
- display(metadatas.getColumnTypeName(i),
metadatas.getColumnDisplaySize(i));
- addToConsole(" ");
- }
- addToConsole("\n");
+ addToConsole(" ");
+ for(int i = 1; i <= nmbCol ; i++) {
+ display(metadatas.getColumnTypeName(i),
metadatas.getColumnDisplaySize(i));
+ addToConsole(" ");
+ }
+ addToConsole("\n");
- addToConsole(" ");
- for(int i = 1; i <= nmbCol ; i++) {
- display("----",
metadatas.getColumnDisplaySize(i));
- addToConsole(" ");
- }
- addToConsole("\n");
+ addToConsole(" ");
+ for(int i = 1; i <= nmbCol ; i++) {
+ display("----",
metadatas.getColumnDisplaySize(i));
+ addToConsole(" ");
+ }
+ addToConsole("\n");
- boolean ret = true;
+ boolean ret = true;
- while(ret) {
- ret = result.next();
+ while(ret) {
+ ret = result.next();
- if(!ret)
- break;
+ if(!ret)
+ break;
- display(Integer.toString(result.getRow()), 4);
- addToConsole(" ");
+
display(Integer.toString(result.getRow()), 4);
+ addToConsole(" ");
- for(int i =1; i <= nmbCol ; i++) {
- display(result.getString(i),
metadatas.getColumnDisplaySize(i));
- addToConsole(" ");
+ for(int i =1; i <= nmbCol ; i++) {
+ display(result.getString(i),
metadatas.getColumnDisplaySize(i));
+ addToConsole(" ");
+ }
+ addToConsole("\n");
}
- addToConsole("\n");
}
} catch(final java.sql.SQLException e) {