private synchronized void init() throws DatabaseException { status = PwmService.STATUS.OPENING; LOGGER.debug("opening connection to database " + this.dbConfiguration.getConnectionString()); connection = openDB(dbConfiguration); for (final DatabaseTable table : DatabaseTable.values()) { initTable(connection, table, dbConfiguration); } status = PwmService.STATUS.OPEN; try { put( DatabaseTable.PWM_META, KEY_ENGINE_START_PREFIX + instanceID, PwmConstants.DEFAULT_DATETIME_FORMAT.format(new java.util.Date())); } catch (DatabaseException e) { final String errorMsg = "error writing engine start time value: " + e.getMessage(); throw new DatabaseException(new ErrorInformation(PwmError.ERROR_DB_UNAVAILABLE, errorMsg)); } }