Class SQLiteDBManager
java.lang.Object
com.inductiveautomation.ignition.gateway.localdb.sqlite.SQLiteDBManager
- All Implemented Interfaces:
DBManager
Created by colby.clegg on 11/12/2015.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int
Number of auto-backups to keep, if autoBackupsEnabled is trueprotected int
Delay, in minutes, between checking if an auto-backup is necessary.protected File
protected boolean
Whether or not to use any autobackups.protected CountingDataSource
When this manager is connected, this will be a non-null reference to a javax.sql.DataSource that can be used to get connections to the databaseprotected File
The home directory that the database lives inprotected String
The name of the databaseprotected int
Delay, in minutes, between defragmentation.static final String
protected int
Number of faulted copies to keepprotected LoggerEx
protected boolean
Flag that will be set true when this manager was started up with no database and created an initial one on connect() -
Constructor Summary
ConstructorsConstructorDescriptionSQLiteDBManager
(ExecutionManager executionManager, Supplier<ContextState> gatewayState, File dbDir, String dbName) -
Method Summary
Modifier and TypeMethodDescriptionbackupDatabase
(File targetFolder, String baseFilename) Creates a single-file backup of the internal db in the specified folder.static SQLiteDBManager
create
(GatewayContext context, File dbDir, String filename) protected String
protected boolean
protected String
desc()
int
int
long
Calculates the harddrive footprint of the files that make up this sqlite instance.Returns the driver for the DBManager.int
void
boolean
boolean
boolean
protected void
onConnected
(DataSource datasource) Called after we have been successfully connected to a sqlite database.protected void
onCreateInitial
(Statement stmt) Called on creation of a new database, after the password has been set.protected void
void
restoreFromDBBackup
(File dbFile) Deletes the database files and restores the provided db filevoid
setAutoBackupCount
(int autoBackupCount) void
setAutoBackupDelay
(int autoBackupDelay) void
setAutoBackupDir
(File autoBackupDir) void
setAutoBackupsEnabled
(boolean autoBackupsEnabled) void
setDefragDelay
(int defragDelayMin) void
setFaultCount
(int faultCount) void
shutdown()
void
shutdown
(boolean compact) void
startup()
-
Field Details
-
DRIVER_CLASS
- See Also:
-
dbDir
The home directory that the database lives in -
autoBackupDir
-
dbName
The name of the database -
faultCount
protected int faultCountNumber of faulted copies to keep -
autoBackupCount
protected int autoBackupCountNumber of auto-backups to keep, if autoBackupsEnabled is true -
autoBackupDelay
protected int autoBackupDelayDelay, in minutes, between checking if an auto-backup is necessary. -
defragDelay
protected int defragDelayDelay, in minutes, between defragmentation. If 0, defrag checkpoints will not be executed. * -
autoBackupsEnabled
protected boolean autoBackupsEnabledWhether or not to use any autobackups. Note that setting this to false doesn net prevent the creation of autobackups - for that you'd set autoBackupCount to zero. -
datasource
When this manager is connected, this will be a non-null reference to a javax.sql.DataSource that can be used to get connections to the database -
newDatabase
protected boolean newDatabaseFlag that will be set true when this manager was started up with no database and created an initial one on connect() -
log
-
-
Constructor Details
-
SQLiteDBManager
public SQLiteDBManager(ExecutionManager executionManager, Supplier<ContextState> gatewayState, File dbDir, String dbName) throws IllegalArgumentException - Throws:
IllegalArgumentException
-
-
Method Details
-
initDriver
- Throws:
DBStartupException
-
createUrl
-
startup
- Specified by:
startup
in interfaceDBManager
- Throws:
DBStartupException
-
getDataSource
- Specified by:
getDataSource
in interfaceDBManager
-
dbFilesExist
protected boolean dbFilesExist() -
onCreateInitial
Called on creation of a new database, after the password has been set.- Throws:
SQLException
-
onConnected
Called after we have been successfully connected to a sqlite database.- Throws:
SQLException
-
onShutdown
protected void onShutdown() -
desc
-
restoreFromDBBackup
Deletes the database files and restores the provided db file- Specified by:
restoreFromDBBackup
in interfaceDBManager
- Throws:
IOException
-
backupDatabase
Description copied from interface:DBManager
Creates a single-file backup of the internal db in the specified folder. The full path to the backup is returned. The filename should start with the base, but should then be identifiable by the specific db system.- Specified by:
backupDatabase
in interfaceDBManager
- Throws:
IOException
-
isRunning
public boolean isRunning() -
isNewDatabase
public boolean isNewDatabase()- Specified by:
isNewDatabase
in interfaceDBManager
-
shutdown
public void shutdown() -
getDatabaseSize
public long getDatabaseSize()Calculates the harddrive footprint of the files that make up this sqlite instance.- Specified by:
getDatabaseSize
in interfaceDBManager
-
shutdown
public void shutdown(boolean compact) -
getAutoBackupDir
-
setAutoBackupDir
-
getFaultCount
public int getFaultCount() -
setFaultCount
public void setFaultCount(int faultCount) - Specified by:
setFaultCount
in interfaceDBManager
-
getAutoBackupCount
public int getAutoBackupCount() -
setAutoBackupCount
public void setAutoBackupCount(int autoBackupCount) - Specified by:
setAutoBackupCount
in interfaceDBManager
-
isAutoBackupsEnabled
public boolean isAutoBackupsEnabled() -
setAutoBackupsEnabled
public void setAutoBackupsEnabled(boolean autoBackupsEnabled) - Specified by:
setAutoBackupsEnabled
in interfaceDBManager
-
getAutoBackupDelay
public int getAutoBackupDelay() -
setAutoBackupDelay
public void setAutoBackupDelay(int autoBackupDelay) - Specified by:
setAutoBackupDelay
in interfaceDBManager
-
setDefragDelay
public void setDefragDelay(int defragDelayMin) - Specified by:
setDefragDelay
in interfaceDBManager
-
getFlavor
-
getDriver
Description copied from interface:DBManager
Returns the driver for the DBManager. Important: the driver holds a session, so a new instance should be created each time. -
createTable
- Specified by:
createTable
in interfaceDBManager
-
create
public static SQLiteDBManager create(GatewayContext context, File dbDir, String filename) throws IllegalArgumentException - Throws:
IllegalArgumentException
-