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(int transactionId)
Deprecated.
Use
commitTransaction(long) . This method wil be removed in Jaybird 4. |
void |
commitTransaction(long transactionId)
Commit a limbo transaction based on its ID.
|
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 |
listLimboTransactions()
Deprecated.
Use
limboTransactionsAsList() or
getLimboTransactions() instead |
void |
markCorruptRecords()
Mark corrupt records in the database as unavailable.
|
void |
rollbackTransaction(int transactionId)
Deprecated.
Use
rollbackTransaction(long) . This method wil be removed in Jaybird 4. |
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 |
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.
|
getCharSet, getDatabase, getDbCryptConfig, getHost, getLogger, getPassword, getPort, getServerVersion, getUser, getWireCrypt, setCharSet, setDatabase, setDbCryptConfig, setHost, setLogger, setPassword, setPort, setUser, setWireCrypt
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 occurs@Deprecated void listLimboTransactions() throws java.sql.SQLException
limboTransactionsAsList()
or
getLimboTransactions()
insteadjava.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 occurs@Deprecated void commitTransaction(int transactionId) throws java.sql.SQLException
commitTransaction(long)
. This method wil be removed in Jaybird 4.transactionId
- The ID of the limbo transaction to be committedjava.sql.SQLException
- if a database access error occurs or the given transaction ID is not validvoid commitTransaction(long transactionId) throws java.sql.SQLException
The transaction id is expected to be a positive long. If you have a negative int
, either call the
- deprecated - commitTransaction(int)
, or 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 valid@Deprecated void rollbackTransaction(int transactionId) throws java.sql.SQLException
rollbackTransaction(long)
. This method wil be removed in Jaybird 4.transactionId
- The ID of the limbo transaction to be rolled backjava.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
, either call the
- deprecated - rollbackTransaction(int)
, or 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 validCopyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.