|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.firebirdsql.management.FBServiceManager
org.firebirdsql.management.FBMaintenanceManager
public class FBMaintenanceManager
The FBMaintenanceManager class is responsible for replicating
the functionality provided by the gfix command-line tool.
Among the responsibilities of this class are:
| Field Summary |
|---|
| Fields inherited from class org.firebirdsql.management.FBServiceManager |
|---|
BUFFER_SIZE |
| Fields inherited from interface org.firebirdsql.management.MaintenanceManager |
|---|
ACCESS_MODE_READ_ONLY, ACCESS_MODE_READ_WRITE, OPERATION_MODE_FULL_SHUTDOWN, OPERATION_MODE_MULTI, OPERATION_MODE_NORMAL, OPERATION_MODE_SINGLE, PAGE_FILL_FULL, PAGE_FILL_RESERVE, SHUTDOWN_ATTACH, SHUTDOWN_FORCE, SHUTDOWN_TRANSACTIONAL, SHUTDOWNEX_ATTACHMENTS, SHUTDOWNEX_FORCE, SHUTDOWNEX_TRANSACTIONS, VALIDATE_FULL, VALIDATE_IGNORE_CHECKSUM, VALIDATE_READ_ONLY |
| Constructor Summary | |
|---|---|
FBMaintenanceManager()
Create a new instance of FBMaintenanceManager based on
the default GDSType. |
|
FBMaintenanceManager(org.firebirdsql.gds.impl.GDSType gdsType)
Create a new instance of FBMaintenanceManager based on
a given GDSType. |
|
FBMaintenanceManager(java.lang.String gdsType)
Create a new instance of FBMaintenanceManager based on
a given GDSType. |
|
| Method Summary | |
|---|---|
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 new since Firebird 2.5. |
void |
commitTransaction(int transactionId)
Deprecated. |
void |
commitTransaction(long transactionId)
Commit a limbo transaction based on its ID. |
int[] |
getLimboTransactions()
Deprecated. Will return long[] in 3.0 |
long[] |
getLimboTransactionsAsLong()
Deprecated. Will be renamed to getLimboTransactions() in 3.0 |
void |
killUnavailableShadows()
Remove references to unavailable shadow files. |
java.util.List<java.lang.Integer> |
limboTransactionsAsList()
Deprecated. Will return List<Long> in 3.0 |
java.util.List<java.lang.Long> |
limboTransactionsAsLongList()
Deprecated. Will be renamed to limboTransactionsAsList() in 3.0 |
void |
listLimboTransactions()
Retrieve the ID of each limbo transaction. |
void |
markCorruptRecords()
Mark corrupt records in the database as unavailable. |
void |
rollbackTransaction(int transactionId)
Deprecated. |
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 new since Firebird 2.5. |
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. |
| Methods inherited from class org.firebirdsql.management.FBServiceManager |
|---|
attachServiceManager, createRequestBuffer, detachServiceManager, executeServicesOperation, getDatabase, getGds, getHost, getLogger, getPassword, getPort, getServiceName, getUser, queueService, setDatabase, setHost, setLogger, setPassword, setPort, setUser |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.firebirdsql.management.ServiceManager |
|---|
getDatabase, getHost, getLogger, getPassword, getPort, getUser, setDatabase, setHost, setLogger, setPassword, setPort, setUser |
| Constructor Detail |
|---|
public FBMaintenanceManager()
FBMaintenanceManager based on
the default GDSType.
public FBMaintenanceManager(java.lang.String gdsType)
FBMaintenanceManager based on
a given GDSType.
gdsType - type must be PURE_JAVA, EMBEDDED, or NATIVEpublic FBMaintenanceManager(org.firebirdsql.gds.impl.GDSType gdsType)
FBMaintenanceManager based on
a given GDSType.
gdsType - The GDS implementation type to use| Method Detail |
|---|
public void setDatabaseAccessMode(int mode)
throws java.sql.SQLException
setDatabaseAccessMode in interface MaintenanceManagermode - Must be either ACCESS_MODE_READ_WRITE
or ACCESS_MODE_READ_ONLY
java.sql.SQLException - if a database access error occurs
public void setDatabaseDialect(int dialect)
throws java.sql.SQLException
setDatabaseDialect in interface MaintenanceManagerdialect - The database dialect, must be either 1 or 3
java.sql.SQLException - if a database access error occurs
public void setDefaultCacheBuffer(int pageCount)
throws java.sql.SQLException
setDefaultCacheBuffer in interface MaintenanceManagerpageCount - The number of pages to be cached, must be positive
java.sql.SQLException - If the given page count cannot be set, or a
database access error occurs
public void setForcedWrites(boolean forced)
throws java.sql.SQLException
setForcedWrites in interface MaintenanceManagerforced - If true, forced writes will be used in the
database, otherwise buffered writes will be used.
java.sql.SQLException - if a database access error occurs
public void 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
setPageFill in interface MaintenanceManagerpageFill - The page-filling strategy, either
PAGE_FILL_FULL or PAGE_FILL_RESERVE
java.sql.SQLException - if a database access error occurs
public void shutdownDatabase(int shutdownMode,
int timeout)
throws java.sql.SQLException
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.
shutdownDatabase in interface MaintenanceManagershutdownMode - One of SHUTDOWN_ATTACH,
SHUTDOWN_TRANSACTIONAL,
or SHUTDOWN_FORCE.timeout - The maximum amount of time allocated for the operation,
in seconds
java.sql.SQLException - if the requested operation cannot be completed
within the given timeout, or a database access error occurs
public void shutdownDatabase(byte operationMode,
int shutdownModeEx,
int timeout)
throws java.sql.SQLException
MaintenanceManagerOPERATION_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.
SHUTDOWNEX_FORCE - Force shutdown.
SHUTDOWNEX_ATTACHMENTS - Shutdown attachments.
SHUTDOWNEX_TRANSACTIONS - Shutdown transactions.
shutdownDatabase in interface MaintenanceManageroperationMode - 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 occurs
public void bringDatabaseOnline()
throws java.sql.SQLException
bringDatabaseOnline in interface MaintenanceManagerjava.sql.SQLException - if a database access error occurs
public void bringDatabaseOnline(byte operationMode)
throws java.sql.SQLException
bringDatabaseOnline in interface MaintenanceManagerjava.sql.SQLException - if a database access error occurs
public void markCorruptRecords()
throws java.sql.SQLException
gfix -mend.
markCorruptRecords in interface MaintenanceManagerjava.sql.SQLException - if a database access error occurs
public void validateDatabase()
throws java.sql.SQLException
validateDatabase in interface MaintenanceManagerjava.sql.SQLException - if a database access error occurs
public void validateDatabase(int options)
throws java.sql.SQLException
options must be one of the
following:
VALIDATE_READ_ONLY - read-only validation,
no repair
VALIDATE_FULL - full validation and repair
options can additionally be combined in
a bitmask with VALIDATE_IGNORE_CHECKSUM to ignore
checksums while performing validation.
validateDatabase in interface MaintenanceManageroptions - Either 0, VALIDATE_READ_ONLY, or
VALIDATE_FULL
java.sql.SQLException - if a database access error occurs
public void setSweepThreshold(int transactions)
throws java.sql.SQLException
transactions is 0, automatic sweeping is disabled.
setSweepThreshold in interface MaintenanceManagertransactions - 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 occurs
public void sweepDatabase()
throws java.sql.SQLException
sweepDatabase in interface MaintenanceManagerjava.sql.SQLException - if a database access error occurs
public void activateShadowFile()
throws java.sql.SQLException
gfix -activate.
activateShadowFile in interface MaintenanceManagerjava.sql.SQLException - if a database access error occurs
public void killUnavailableShadows()
throws java.sql.SQLException
gfix -kill.
killUnavailableShadows in interface MaintenanceManagerjava.sql.SQLException - if a database access error occurs
public void listLimboTransactions()
throws java.sql.SQLException
listLimboTransactions in interface MaintenanceManagerjava.sql.SQLException - if a database access error occurs
@Deprecated
public java.util.List<java.lang.Integer> limboTransactionsAsList()
throws java.sql.SQLException
List<Long> in 3.0
java.sql.SQLException
@Deprecated
public java.util.List<java.lang.Long> limboTransactionsAsLongList()
throws java.sql.SQLException
limboTransactionsAsList() in 3.0
java.sql.SQLException
@Deprecated
public int[] getLimboTransactions()
throws java.sql.SQLException
long[] in 3.0
java.sql.SQLException
@Deprecated
public long[] getLimboTransactionsAsLong()
throws java.sql.SQLException
getLimboTransactions() in 3.0
java.sql.SQLException
@Deprecated
public void commitTransaction(int transactionId)
throws java.sql.SQLException
MaintenanceManager
commitTransaction in interface MaintenanceManagertransactionId - The ID of the limbo transaction to be committed
java.sql.SQLException - if a database access error occurs or the given transaction ID is not valid
public void commitTransaction(long transactionId)
throws java.sql.SQLException
MaintenanceManager
The transaction id is expected to be a positive long. If you have a negative int, either call the
- deprecated - MaintenanceManager.commitTransaction(int), or convert the int to an unsigned long
using NumericHelper.toUnsignedLong(int)
commitTransaction in interface MaintenanceManagertransactionId - 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
public void rollbackTransaction(int transactionId)
throws java.sql.SQLException
MaintenanceManager
rollbackTransaction in interface MaintenanceManagertransactionId - The ID of the limbo transaction to be rolled back
java.sql.SQLException - if a database access error occurs or the given transaction ID is not valid
public void rollbackTransaction(long transactionId)
throws java.sql.SQLException
MaintenanceManager
The transaction id is expected to be a positive long. If you have a negative int, either call the
- deprecated - MaintenanceManager.rollbackTransaction(int), or convert the int to an unsigned long
using NumericHelper.toUnsignedLong(int)
rollbackTransaction in interface MaintenanceManagertransactionId - 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 valid
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||