/** * If this is a Derby database, force a checkpoint so that the disk space occupied by the * transaction log is freed as early as possible. */ private void checkpointDatabase(ConnectionResource conn) throws SQLException { DatabaseMetaData dmd = conn.getMetaData(); if (procedureExists(dmd, "SYSCS_UTIL", "SYSCS_CHECKPOINT_DATABASE")) { try (Statement s = conn.createStatement()) { s.execute("CALL SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE()"); } conn.commit(); } }
@Override public void initialize() throws HistoryException { try { connectionManager = new ConnectionManager(jdbcDriverClass, jdbcConnectionURL); for (int i = 0; ; i++) { final ConnectionResource conn = connectionManager.getConnectionResource(); try { try (Statement stmt = conn.createStatement()) { initDB(stmt); } conn.commit(); // Success! Break out of the loop. return; } catch (SQLException sqle) { handleSQLException(sqle, i); } finally { connectionManager.releaseConnection(conn); } } } catch (Exception e) { throw new HistoryException(e); } }