public interface MaintenanceManager extends ServiceManager
MaintenanceManager
is responsible for replicating the
functionality provided by the gfix
command-line tool.
Among the responsibilities of this class are:
Modifier and Type | Field and Description |
---|---|
static int |
ACCESS_MODE_READ_ONLY
Database read-only mode
|
static int |
ACCESS_MODE_READ_WRITE
Database read-write mode
|
static byte |
OPERATION_MODE_FULL_SHUTDOWN
Operation mode full shutdown.
|
static byte |
OPERATION_MODE_MULTI
Operation mode multi shutdown/online.
|
static byte |
OPERATION_MODE_NORMAL
Operation mode normal online.
|
static byte |
OPERATION_MODE_SINGLE
Operation mode single shutdown/online.
|
static int |
PAGE_FILL_FULL
Fully fill pages when inserting records.
|
static int |
PAGE_FILL_RESERVE
While inserting records, reserve 20% of each page for later record deltas
|
static int |
SHUTDOWN_ATTACH
Don't allow new connections while waiting to shut down.
|
static int |
SHUTDOWN_FORCE
Forced database shutdown.
|
static int |
SHUTDOWN_TRANSACTIONAL
Don't allow new transactions while waiting to shut down.
|
static int |
SHUTDOWNEX_ATTACHMENTS
Shutdown attachments.
|
static int |
SHUTDOWNEX_FORCE
Force shutdown.
|
static int |
SHUTDOWNEX_TRANSACTIONS
Shutdown transactions.
|
static int |
VALIDATE_FULL
Do a full check on record and pages structures, releasing unassigned
record fragments.
|
static int |
VALIDATE_IGNORE_CHECKSUM
Ignore checksums during repair operations.
|
static int |
VALIDATE_READ_ONLY
Only report corrupt or misallocated structures, don't fix.
|
Modifier and Type | Method and Description |
---|---|
void |
activateShadowFile()
Activate a database shadow file to be used as the actual database.
|
void |
bringDatabaseOnline()
Bring a shutdown database online.
|
void |
bringDatabaseOnline(byte operationMode)
Bring a shutdown database online with enhanced operation modes (FB 2.5 or
higher).
|
void |
commitTransaction(long transactionId)
Commit a limbo transaction based on its ID.
|
void |
fixIcu()
Update or rebuild ICU-dependent collations and indexes when ICU version changed.
|
long[] |
getLimboTransactions()
Retrieve the ID of each limbo transaction as an array of longs.
|
void |
killUnavailableShadows()
Remove references to unavailable shadow files.
|
java.util.List<java.lang.Long> |
limboTransactionsAsList()
Retrieve the ID of each limbo transaction as a List of Long objects.
|
void |
markCorruptRecords()
Mark corrupt records in the database as unavailable.
|
void |
rollbackTransaction(long transactionId)
Rollback a limbo transaction based on its ID.
|
void |
setDatabaseAccessMode(int mode)
Set the database to have read-write or read-only access.
|
void |
setDatabaseDialect(int dialect)
Set the database's dialect.
|
void |
setDefaultCacheBuffer(int pageCount)
Set the default page-buffer count to be cached in the database.
|
void |
setForcedWrites(boolean forced)
Enable or disable forced (synchronous) writes in the database.
|
void |
setPageFill(int pageFill)
Set the page fill strategy for when inserting records.
|
void |
setSweepThreshold(int transactions)
Set the database automatic sweep interval to a given number of
transactions.
|
void |
shutdownDatabase(byte operationMode,
int shutdownModeEx,
int timeout)
Shutdown the current database with enhanced modes (FB 2.5 or higher).
|
void |
shutdownDatabase(int shutdownMode,
int timeout)
Shutdown the current database.
|
void |
sweepDatabase()
Perform an immediate sweep of the database.
|
void |
upgradeOds()
Perform minor ODS upgrade.
|
void |
validateDatabase()
Locate and release database pages that are allocated but unassigned to
any data structures.
|
void |
validateDatabase(int options)
Locate and release database pages that are allocated but unassigned to
any data structures.
|
getDatabase, getHost, getLogger, getPort, getServerVersion, getWireCryptAsEnum, setDatabase, setHost, setLogger, setPort, setWireCryptAsEnum
getExpectedDb, getServiceName, setExpectedDb, setServiceName
getAuthPlugins, getCharSet, getConnectTimeout, getDbCryptConfig, getEncoding, getParallelWorkers, getPassword, getPortNumber, getProcessId, getProcessName, getRoleName, getServerName, getSocketBufferSize, getSoTimeout, getType, getUser, getWireCrypt, isWireCompression, setAuthPlugins, setCharSet, setConnectTimeout, setDbCryptConfig, setEncoding, setParallelWorkers, setPassword, setPortNumber, setProcessId, setProcessName, setRoleName, setServerName, setSocketBufferSize, setSoTimeout, setType, setUser, setWireCompression, setWireCrypt
connectionPropertyValues, getBooleanProperty, getBooleanProperty, getIntProperty, getIntProperty, getProperty, getProperty, setBooleanProperty, setIntProperty, setProperty
static final int ACCESS_MODE_READ_WRITE
static final int ACCESS_MODE_READ_ONLY
static final int SHUTDOWN_ATTACH
static final int SHUTDOWN_TRANSACTIONAL
static final int SHUTDOWN_FORCE
static final int VALIDATE_READ_ONLY
static final int VALIDATE_IGNORE_CHECKSUM
static final int VALIDATE_FULL
static final int PAGE_FILL_FULL
static final int PAGE_FILL_RESERVE
static final byte OPERATION_MODE_NORMAL
To be used with the shutdownDatabase(byte, int, int)
method.
shutdownDatabase(byte, int, int)
,
Constant Field Valuesstatic final byte OPERATION_MODE_MULTI
To be used with the shutdownDatabase(byte, int, int)
method.
shutdownDatabase(byte, int, int)
,
Constant Field Valuesstatic final byte OPERATION_MODE_SINGLE
To be used with the shutdownDatabase(byte, int, int)
method.
shutdownDatabase(byte, int, int)
,
Constant Field Valuesstatic final byte OPERATION_MODE_FULL_SHUTDOWN
To be used with the shutdownDatabase(byte, int, int)
method.
shutdownDatabase(byte, int, int)
,
Constant Field Valuesstatic final int SHUTDOWNEX_FORCE
To be used with the shutdownDatabase(byte, int, int)
method.
shutdownDatabase(byte, int, int)
,
Constant Field Valuesstatic final int SHUTDOWNEX_ATTACHMENTS
To be used with the shutdownDatabase(byte, int, int)
method.
shutdownDatabase(byte, int, int)
,
Constant Field Valuesstatic final int SHUTDOWNEX_TRANSACTIONS
To be used with the shutdownDatabase(byte, int, int)
method.
shutdownDatabase(byte, int, int)
,
Constant Field Valuesvoid setDatabaseAccessMode(int mode) throws java.sql.SQLException
mode
- Must be either ACCESS_MODE_READ_WRITE
or ACCESS_MODE_READ_ONLY
java.sql.SQLException
- if a database access error occursvoid setDatabaseDialect(int dialect) throws java.sql.SQLException
dialect
- The database dialect, must be either 1 or 3java.sql.SQLException
- if a database access error occursvoid setDefaultCacheBuffer(int pageCount) throws java.sql.SQLException
pageCount
- The number of pages to be cached, must be a positivejava.sql.SQLException
- If the given page count cannot be set, or a database access error occursvoid setForcedWrites(boolean forced) throws java.sql.SQLException
Note, it is considered to be a very bad idea to disable forced writes on Windows platforms.
forced
- If true
, forced writes will be used in the database, otherwise buffered writes will be used.java.sql.SQLException
- if a database access error occursvoid setPageFill(int pageFill) throws java.sql.SQLException
pageFill
can be one of:
PAGE_FILL_FULL
Fully fill database pages
PAGE_FILL_RESERVE
Reserve 20% of page space for later
record deltas
pageFill
- The page-filling strategy, either PAGE_FILL_FULL
or PAGE_FILL_RESERVE
java.sql.SQLException
- if a database access error occursvoid shutdownDatabase(int shutdownMode, int timeout) throws java.sql.SQLException
Shutdown can be done in three modes:
SHUTDOWN_ATTACH
- No new non-owner connections will be allowed to the database during the shutdown,
and shutdown is cancelled if there are still processes connected at the end of the timeout.SHUTDOWN_TRANSACTIONAL
- No new transactions can be started during the timeout period, and shutdown
is cancelled if there are still active transactions at the end of the timeout.SHUTDOWN_FORCE
- Forcefully shuts down the database at the end of the timeout.shutdownMode
- One of SHUTDOWN_ATTACH
, SHUTDOWN_TRANSACTIONAL
, or SHUTDOWN_FORCE
.timeout
- The maximum amount of time allocated for the operation, in secondsjava.sql.SQLException
- if the requested operation cannot be completed within the given timeout, or a database access error
occursvoid shutdownDatabase(byte operationMode, int shutdownModeEx, int timeout) throws java.sql.SQLException
There are three operation modes for shutdown available:
OPERATION_MODE_MULTI
- Multi-user maintenance. Unlimited SYSDBA/database owner connections are
allowed.OPERATION_MODE_SINGLE
- Single-user maintenance. Only one SYSDBA/database owner connection is
allowed.OPERATION_MODE_FULL_SHUTDOWN
- Full shutdown. Full exclusive shutdown. No connections are allowed.There are three extended shutdown modes for shutdown available:
SHUTDOWNEX_FORCE
- Force shutdown.SHUTDOWNEX_ATTACHMENTS
- Shutdown attachments.SHUTDOWNEX_TRANSACTIONS
- Shutdown transactions.operationMode
- one of OPERATION_MODE_*
operation modes listed aboveshutdownModeEx
- one of SHUTDOWNEX_*
extended shutdown modes listed abovetimeout
- The maximum amount of time allocated for the operation, in seconds. 0 = immediately.java.sql.SQLException
- if the requested operation cannot be completed within the given timeout, or a database access error
occursvoid bringDatabaseOnline() throws java.sql.SQLException
java.sql.SQLException
- if a database access error occursvoid bringDatabaseOnline(byte operationMode) throws java.sql.SQLException
There are three operation modes for bringing a database online available:
OPERATION_MODE_NORMAL
- Normal operation modes.OPERATION_MODE_MULTI
- Multi-user maintenance. Unlimited SYSDBA/database owner connections are
allowed.OPERATION_MODE_SINGLE
- Single-user maintenance. Only one SYSDBA/database owner connection is
allowed.java.sql.SQLException
- if a database access error occursvoid markCorruptRecords() throws java.sql.SQLException
This operation ensures that the corrupt records are skipped (for example, during a subsequent backup).
java.sql.SQLException
- if a database access error occursvoid validateDatabase() throws java.sql.SQLException
java.sql.SQLException
- if a database access error occursvoid validateDatabase(int options) throws java.sql.SQLException
The value supplied for options
must be one of the following:
VALIDATE_READ_ONLY
- read-only validation, no repairVALIDATE_FULL
- full validation and repair
The value for options
can additionally be combined in a bitmask with VALIDATE_IGNORE_CHECKSUM
to
ignore checksums while performing validation.
options
- Either 0, VALIDATE_READ_ONLY
, or VALIDATE_FULL
java.sql.SQLException
- if a database access error occursvoid setSweepThreshold(int transactions) throws java.sql.SQLException
The Firebird default value is 20,000. If transactions
is 0, automatic sweeping is disabled.
transactions
- The interval of transactions between automatic sweeps of the database. Can be set to 0, which disables
automatic sweeping of the database.java.sql.SQLException
- if a database access error occursvoid sweepDatabase() throws java.sql.SQLException
java.sql.SQLException
- if a database access error occursvoid activateShadowFile() throws java.sql.SQLException
This method is the equivalent of gfix -activate
.
java.sql.SQLException
- if a database access error occursvoid killUnavailableShadows() throws java.sql.SQLException
This method is the equivalent of gfix -kill
.
java.sql.SQLException
- if a database access error occursjava.util.List<java.lang.Long> limboTransactionsAsList() throws java.sql.SQLException
java.sql.SQLException
- if a database access error occurslong[] getLimboTransactions() throws java.sql.SQLException
In Firebird 3, transactions are (unsigned) 48 bit longs.
java.sql.SQLException
- if a database access error occursvoid commitTransaction(long transactionId) throws java.sql.SQLException
The transaction id is expected to be a positive long. If you have a negative int
, convert the int to
an unsigned long using NumericHelper.toUnsignedLong(int)
transactionId
- The ID of the limbo transaction to be committed (must be > 0
)java.sql.SQLException
- if a database access error occurs or the given transaction ID is not validvoid rollbackTransaction(long transactionId) throws java.sql.SQLException
The transaction id is expected to be a positive long. If you have a negative int
, convert the int to
an unsigned long using NumericHelper.toUnsignedLong(int)
transactionId
- The ID of the limbo transaction to be rolled back (must be > 0
)java.sql.SQLException
- if a database access error occurs or the given transaction ID is not validvoid upgradeOds() throws java.sql.SQLException
Requires Firebird 5.0 or higher.
java.sql.SQLException
- if a database access error occursvoid fixIcu() throws java.sql.SQLException
Requires Firebird 3.0 or higher.
java.sql.SQLException
- if a database access error occursCopyright © 2001-2024 Jaybird (Firebird JDBC) team. All rights reserved.