Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Firebird Open Source J2EE Connector - JDBC Driver
   * 
   * Copyright (C) All Rights Reserved.
   * 
   * This file was created by members of the firebird development team.
   * All individual contributions remain the Copyright (C) of those
   * individuals.  Contributors to this file are either listed here or
   * can be obtained from a CVS history command.
  * 
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *  
  *   - Redistributions of source code must retain the above copyright 
  *     notice, this list of conditions and the following disclaimer.
  *   - Redistributions in binary form must reproduce the above 
  *     copyright notice, this list of conditions and the following 
  *     disclaimer in the documentation and/or other materials provided 
  *     with the distribution.
  *   - Neither the name of the firebird development team nor the names
  *     of its contributors may be used to endorse or promote products 
  *     derived from this software without specific prior written 
  *     permission.
  * 
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 
  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
  * SUCH DAMAGE.
  */
 package org.firebirdsql.management;
 
 
 
A MaintenanceManager is responsible for replicating the functionality provided by the gfix command-line tool. Among the responsibilities of this class are:
  • Database shutdown
  • Extended database shutdown/online modes new with Firebird 2.5
  • Changing database mode to read-only or read-write
  • Enabling or disabling forced writes in the database
  • Changing the dialect of the database
  • Setting the cache size at database-level
  • Mending databases and making minor repairs
  • Sweeping databases
  • Displaying, committing, or recovering limbo transactions
  • Activating and killing shadow files
  • Configuring page fill

Author(s):
Gabriel Reid
Thomas Steinmaurer
 
 public interface MaintenanceManager extends ServiceManager {

    
Database read-write mode
 
     public static final int ACCESS_MODE_READ_WRITE = .;

    
Database read-only mode
 
     public static final int ACCESS_MODE_READ_ONLY = .;

    
Don't allow new connections while waiting to shut down.
 
     public static final int SHUTDOWN_ATTACH = .;

    
Don't allow new transactions while waiting to shut down.
 
     public static final int SHUTDOWN_TRANSACTIONAL = .;

    
Forced database shutdown.
 
     public static final int SHUTDOWN_FORCE = .;

    
Only report corrupt or misallocated structures, don't fix.
 
     public static final int VALIDATE_READ_ONLY = .;

    
Ignore checksums during repair operations.
    public static final int VALIDATE_IGNORE_CHECKSUM = .;

    
Do a full check on record and pages structures, releasing unassigned record fragments.
    public static final int VALIDATE_FULL = .;

    
Fully fill pages when inserting records.
    public static final int PAGE_FILL_FULL = .;

    
While inserting recrods, reserve 20% of each page for later record deltas
    public static final int PAGE_FILL_RESERVE = .;
    
    
Operation mode normal online. New with Firebird 2.5. To be used with the shutdownDatabase(byte,int,int) method.

    public static final byte OPERATION_MODE_NORMAL = .;
    
    
Operation mode multi shutdown/online. New with Firebird 2.5. To be used with the shutdownDatabase(byte,int,int) method.

    public static final byte OPERATION_MODE_MULTI = .;
    
    
Operation mode single shutdown/online. New with Firebird 2.5. To be used with the shutdownDatabase(byte,int,int) method.

    public static final byte OPERATION_MODE_SINGLE = .;
    
    
Operation mode full shutdown. New with Firebird 2.5. To be used with the shutdownDatabase(byte,int,int) method.

    public static final byte OPERATION_MODE_FULL_SHUTDOWN = .;
    
    
Force shutdown. New with Firebird 2.5. To be used with the shutdownDatabase(byte,int,int) method.

    public static final int SHUTDOWNEX_FORCE = .;
    
    
Shutdown attachments. New with Firebird 2.5. To be used with the shutdownDatabase(byte,int,int) method.

    public static final int SHUTDOWNEX_ATTACHMENTS = .;

    
Shutdown transactions. New with Firebird 2.5. To be used with the shutdownDatabase(byte,int,int) method.

    public static final int SHUTDOWNEX_TRANSACTIONS = .;
    
    
Set the database to have read-write or read-only access.

Parameters:
mode Must be either ACCESS_MODE_READ_WRITE or ACCESS_MODE_READ_ONLY
Throws:
java.sql.SQLException if a database access error occurs
    public void setDatabaseAccessMode(int modethrows SQLException

    
Set the database's dialect.

Parameters:
dialect The database dialect, must be either 1 or 3
Throws:
java.sql.SQLException if a database access error occurs
    public void setDatabaseDialect(int dialectthrows SQLException;


    
Set the default page-buffer count to be cached in the database. The Firebird default is 2048.

Parameters:
pageCount The number of pages to be cached, must be a positive
Throws:
java.sql.SQLException If the given page count cannot be set, or a database access error occurs
    public void setDefaultCacheBuffer(int pageCountthrows SQLException;


    
Enable or disable forced (synchronous) writes in the database. Note, it is considered to be a very bad idea to use buffered writing on Windows platforms.

Parameters:
forced If true, forced writes will be used in the database, otherwise buffered writes will be used.
Throws:
java.sql.SQLException if a database access error occurs
    public void setForcedWrites(boolean forcedthrows SQLException;

   
    
Set the page fill strategy for when inserting records. pageFill can be one of:
  • PAGE_FILL_FULL Fully fill database pages
  • PAGE_FILL_RESERVE Reserve 20% of page space for later record deltas

Parameters:
pageFill The page-filling strategy, either PAGE_FILL_FULL or PAGE_FILL_RESERVE
Throws:
java.sql.SQLException if a database access error occurs
    public void setPageFill(int pageFillthrows SQLException;
    //----------- Database Shutdown -------------------

    
Shutdown the current database. 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.

Parameters:
shutdownMode One of SHUTDOWN_ATTACH, SHUTDOWN_TRANSACTIONAL, or SHUTDOWN_FORCE.
timeout The maximum amount of time allocated for the operation, in seconds
Throws:
java.sql.SQLException if the requested operation cannot be completed within the given timeout, or a database access error occurs
    public void shutdownDatabase(int shutdownModeint timeout
            throws SQLException ;

    
Shutdown the current database with enhanced modes new since Firebird 2.5. 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.

Parameters:
operationMode one of OPERATION_MODE_* operation modes listed above
shutdownModeEx one of SHUTDOWNEX_* extended shutdown modes listed above
timeout The maximum amount of time allocated for the operation, in seconds. 0 = immediately.
Throws:
java.sql.SQLException if the requested operation cannot be completed within the given timeout, or a database access error occurs
    public void shutdownDatabase(byte operationModeint shutdownModeExint timeoutthrows SQLException ;

    
    
Bring a shutdown database online.

Throws:
java.sql.SQLException if a database access error occurs
    public void bringDatabaseOnline() throws SQLException

    
Bring a shutdown database online with enhanced operation modes new since Firebird 2.5. 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.

Throws:
java.sql.SQLException if a database access error occurs
    public void bringDatabaseOnline(byte operationModethrows SQLException
    //-------------- Database Repair ----------------------

    
Mark corrupt records in the database as unavailable. This operation ensures that the corrupt records are skipped (for example, during a subsequent backup).

Throws:
java.sql.SQLException if a database access error occurs
    public void markCorruptRecords() throws SQLException;

    
Locate and release database pages that are allocated but unassigned to any data structures. This method also reports corrupt structures.

Throws:
java.sql.SQLException if a database access error occurs
    public void validateDatabase() throws SQLException;

    
Locate and release database pages that are allocated but unassigned to any data structures. This method also reports corrupt structures. The value supplied for options must be one of the following:
  • 0 - Simple validation
  • VALIDATE_READ_ONLY - read-only validation, no repair
  • VALIDATE_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.

Parameters:
options Either 0, VALIDATE_READ_ONLY, or VALIDATE_FULL
Throws:
java.sql.SQLException if a database access error occurs
    public void validateDatabase(int optionsthrows SQLException;
   
    //----------- Sweeping -------------------------
   
    
Set the database automatic sweep interval to a given number of transactions. The Firebird default value is 20,000. If transactions is 0, automatic sweeping is disabled.

Parameters:
transactions The interval of transactions between automatic sweeps of the database. Can be set to 0, which disables automatic sweeping of the database.
Throws:
java.sql.SQLException if a database access error occurs
    public void setSweepThreshold(int transactionsthrows SQLException;

    
Perform an immediate sweep of the database.

Throws:
java.sql.SQLException if a database access error occurs
    public void sweepDatabase() throws SQLException;
    //----------- Shadow Files ------------------------------------
   
    
Activate a database shadow file to be used as the actual database. This method is the equivalent of gfix -activate.

Throws:
java.sql.SQLException if a database access error occurs
    public void activateShadowFile() throws SQLException;

    
Remove references to unavailable shadow files. This method is the equivalent of gfix -kill.

Throws:
java.sql.SQLException if a database access error occurs
    public void killUnavailableShadows() throws SQLException;
    //----------- Transaction Management ----------------------------

    
Retrieve the ID of each limbo transaction. The output of this method is written to the logger.

Throws:
java.sql.SQLException if a database access error occurs
    public void listLimboTransactions() throws SQLException

    
Commit a limbo transaction based on its ID.

Parameters:
transactionId The ID of the limbo transaction to be committed
Throws:
java.sql.SQLException if a database access error occurs or the given transaction ID is not valid
    public void commitTransaction(int transactionIdthrows SQLException;

    
Rollback a limbo transaction based on its ID.

Parameters:
transactionId The ID of the limbo transaction to be rolled back
Throws:
java.sql.SQLException if a database access error occurs or the given transaction ID is not valid
    public void rollbackTransaction(int transactionIdthrows SQLException;
New to GrepCode? Check out our FAQ X