Class FBStreamingBackupManager

All Implemented Interfaces:
AttachmentProperties, BaseProperties, ServiceConnectionProperties, BackupManager, ServiceManager

public class FBStreamingBackupManager extends FBBackupManagerBase implements BackupManager
Implements the streaming version of the backup and restore functionality of Firebird Services API.
Author:
Roman Rokytskyy, Mark Rotteveel
  • Constructor Details

    • FBStreamingBackupManager

      public FBStreamingBackupManager()
      Create a new instance of FBStreamingBackupManager based on the default GDSType.
    • FBStreamingBackupManager

      public FBStreamingBackupManager(String gdsType)
      Create a new instance of FBStreamingBackupManager based on a given GDSType.
      Parameters:
      gdsType - type must be PURE_JAVA, EMBEDDED, or NATIVE
    • FBStreamingBackupManager

      public FBStreamingBackupManager(GDSType gdsType)
      Create a new instance of FBStreamingBackupManager based on a given GDSType.
      Parameters:
      gdsType - type must be PURE_JAVA, EMBEDDED, or NATIVE
  • Method Details

    • setBackupBufferSize

      public void setBackupBufferSize(int bufferSize)
      Set the local buffer size to be used when doing a backup. Default is 30720
      Parameters:
      bufferSize - The buffer size to be used, a positive value
    • setBackupPath

      public void setBackupPath(String backupPath)
      Description copied from interface: BackupManager
      Sets the location of the backup file. This method is used to set the path to the backup consisting of a single file. It is not possible to add multiple files or specify the max. size of the file using this method. It is also not possible to call BackupManager.addBackupPath(String, int) method after calling this one.
      Specified by:
      setBackupPath in interface BackupManager
      Parameters:
      backupPath - the location of the backup file.
      See Also:
    • addBackupPath

      public void addBackupPath(String path, int size)
      Description copied from interface: BackupManager
      Add the file to the backup of the specified size. Firebird allows splitting the backup into multiple files, limiting the size of the backup file. This can be useful for example for creating a backup on CD or DVD.
      Specified by:
      addBackupPath in interface BackupManager
      Parameters:
      path - path to the backup file.
      size - max size of the file in bytes.
    • setBackupOutputStream

      public void setBackupOutputStream(OutputStream backupStream)
    • setRestoreInputStream

      public void setRestoreInputStream(InputStream restoreStream)
    • clearBackupPaths

      public void clearBackupPaths()
      Description copied from interface: BackupManager
      Clear the information about backup paths. This method undoes all parameters set in the BackupManager.addBackupPath(String, int) or BackupManager.addBackupPath(String) methods.
      Specified by:
      clearBackupPaths in interface BackupManager
    • backupDatabase

      public void backupDatabase(int options) throws SQLException
      Description copied from interface: BackupManager
      Perform the backup operation.
      Specified by:
      backupDatabase in interface BackupManager
      Parameters:
      options - a bitmask combination of the BACKUP_* constants for the backup operation
      Throws:
      SQLException - if a database error occurs during the backup
    • restoreDatabase

      public void restoreDatabase(int options) throws SQLException
      Description copied from interface: BackupManager
      Perform the restore operation.
      Specified by:
      restoreDatabase in interface BackupManager
      Parameters:
      options - A bitmask combination of RESTORE_* constants
      Throws:
      SQLException - if a database error occurs during the restore
    • verboseBackup

      protected boolean verboseBackup()
      Streaming backups are currently not capable of verbose output
      Specified by:
      verboseBackup in class FBBackupManagerBase
    • setRestorePageSize

      public void setRestorePageSize(int pageSize)
      Set the page size that will be used for a restored database. The value for pageSize must be one at least 4096, see als PageSizeConstants. The default value depends on the Firebird version. Pages smaller than 4096 were dropped in 2006 and are by definition unavailable with the streaming functionality of the Services API
      Specified by:
      setRestorePageSize in interface BackupManager
      Overrides:
      setRestorePageSize in class FBBackupManagerBase
      Parameters:
      pageSize - The page size to be used in a restored database, see PageSizeConstants with a minimum of 4096
      See Also:
    • addBackupsToBackupRequestBuffer

      protected void addBackupsToBackupRequestBuffer(FbService service, ServiceRequestBuffer backupSPB)
      Adds stdout as a source for the backup operation
      Specified by:
      addBackupsToBackupRequestBuffer in class FBBackupManagerBase
      Parameters:
      backupSPB - The buffer to be used during the backup operation
    • addBackupsToRestoreRequestBuffer

      protected void addBackupsToRestoreRequestBuffer(FbService service, ServiceRequestBuffer restoreSPB)
      Adds stdin as a source for the restore operation
      Specified by:
      addBackupsToRestoreRequestBuffer in class FBBackupManagerBase
      Parameters:
      restoreSPB - The buffer to be used during the restore operation