Class ConnectionPool

java.lang.Object
ru.bgcrm.util.sql.ConnectionPool

public class ConnectionPool extends Object
  • Field Details

  • Constructor Details

  • Method Details

    • getDataSource

      public DataSource getDataSource()
    • getConnectionSet

      public ConnectionSet getConnectionSet()
    • getConnectionSet

      public ConnectionSet getConnectionSet(boolean autoCommit)
    • close

      public void close()
    • getDBConnectionFromPool

      public final Connection getDBConnectionFromPool()
      Возвращает соединение с Master БД из пула.
      Returns:
      соединение с Master БД либо null в случае недоступности.
    • getSlaveDataSource

      public final DataSource getSlaveDataSource()
    • getDBSlaveConnectionFromPool

      public final Connection getDBSlaveConnectionFromPool()
      Возвращает соединение с Slave БД из пула. Если Slave БД не определены в конфигурации - возвращает из Master пула.
      Returns:
    • getDBSlaveConnectionFromPool

      public final Connection getDBSlaveConnectionFromPool(Connection master)
      Возвращает соединение с Slave БД из пула. Если Slave БД не определены в конфигурации - возвращает из Master пула.
      Parameters:
      masterOnNull - если false то при отсутсвии slave баз вернет null.
      Returns:
    • getDBTrashConnectionFromPool

      public final Connection getDBTrashConnectionFromPool(String tableName, int retType)
      Возвращает соединение с мусорной БД если она описана для таблицы в конфиге либо в зависимости от retType.
      Parameters:
      tableName - имя таблицы.
      retType - RETURN_FAKE, RETURN_SLAVE либо RETURN_MASTER.
      Returns:
      если не указана конфигурация мусорной БД может быть возвращен коннект к мастер БД, фейковый коннект либо коннект Slave БД.
    • getDBTrashOrMasterConnectionFromPool

      public final Connection getDBTrashOrMasterConnectionFromPool(String tableName)
      Возвращение соединения к выделенной "мусорной" либо Master-базе (если треш-база не найдена).
      Parameters:
      tableName -
      Returns:
    • getDBTrashOrSlaveConnectionFromPool

      public final Connection getDBTrashOrSlaveConnectionFromPool(String tableName)
      Возвращение соединения к выделенной "мусорной" либо Slave-базе
      Parameters:
      tableName -
      Returns:
    • getSlaveConnectionFromPool

      public final Connection getSlaveConnectionFromPool(String poolId)
      Возвращает соединение с slave базой. если неверная база то null со всем вытекающим, так как применяется только при принудительном выборе базы в некоторых специфичных служебных случаях.
      Parameters:
      poolId - - ид базы
      Returns:
      коннекшен
    • getSlaveBaseId

      public final Set<String> getSlaveBaseId()
      Возвращает идентификаторы slave баз.
      Returns:
    • getTrashBaseId

      public final Set<String> getTrashBaseId()
      Возвращает идентификаторы trash баз.
      Returns:
    • getTrashConnectionFromPool

      public final Connection getTrashConnectionFromPool(String poolId)
      Возвращает соединение с trash базой. если неверная база то null со всем вытекающим, так как применяется только при принудительном выборе базы в некоторых специфичных служебных случаях.
      Parameters:
      poolId - - ид базы
      Returns:
      коннекшен
    • getPoolStatus

      public String getPoolStatus()
      Отчет по статусу пулов соединений
      Returns:
    • getMasterActive

      public int getMasterActive()
    • getMasterMaxActive

      public int getMasterMaxActive()
    • getMasterIdle

      public int getMasterIdle()
    • getMasterMaxIdle

      public int getMasterMaxIdle()
    • getSlaveActive

      public int getSlaveActive(String slaveId)
    • getSlaveMaxActive

      public int getSlaveMaxActive(String slaveId)
    • getSlaveIdle

      public int getSlaveIdle(String slaveId)
    • getSlaveMaxIdle

      public int getSlaveMaxIdle(String slaveId)
    • getMasterPoolLoad

      public float getMasterPoolLoad()
      Возвращает отношение числа активных соединений к максимально разрешённому числу соединений Мастер - БД.
      Returns:
    • getPoolStackTrace

      public String getPoolStackTrace()
    • setReplicationNotBehindMaster

      public void setReplicationNotBehindMaster(String slaveId, boolean isNotBehind)
      Включение/Отключение флага отставания Slave базы
      Parameters:
      slaveId - идентификатор Slave базы
      isNotBehind - true - отставание выключено, false - отставание включено
    • isReplicationNotBehindMaster

      public boolean isReplicationNotBehindMaster(String slaveId)
      Проверяет есть ли отставание Slave базы
      Parameters:
      slaveId - идентификатор Slave базы
      Returns:
    • compareAndSetReplicationNotBehindMaster

      public boolean compareAndSetReplicationNotBehindMaster(String slaveId, boolean expected, boolean update)
    • isReplicationAvailable

      public boolean isReplicationAvailable(String slaveId)
      Проверяет доступность Slave базы
      Parameters:
      slaveId - идентификатор Slave базы
      Returns:
      true - если доступна, false - если не доступна
    • setReplicationAvailable

      public void setReplicationAvailable(String slaveId, boolean available)
      Установка/Отключение доступности Slave базы
      Parameters:
      slaveId - идентификатор Slave базы
      available - true -не доступно; false - доступно