Search in sources :

Example 6 with BootstrapConn

use of com.linkedin.databus.bootstrap.common.BootstrapConn in project databus by linkedin.

the class BootstrapAddSource method getConnection.

/*
	 * @return a bootstrapDB connection object.
	 * Note: The connection object is still owned by BootstrapConn. SO dont close it
	 */
public Connection getConnection() {
    Connection conn = null;
    if (_dbDao == null) {
        LOG.info("<<<< Creating Bootstrap Connection!! >>>>");
        BootstrapConn dbConn = new BootstrapConn();
        try {
            dbConn.initBootstrapConn(false, _config.getBootstrapDBUsername(), _config.getBootstrapDBPassword(), _config.getBootstrapDBHostname(), _config.getBootstrapDBName());
            _dbDao = new BootstrapDBMetaDataDAO(dbConn, _config.getBootstrapDBHostname(), _config.getBootstrapDBUsername(), _config.getBootstrapDBPassword(), _config.getBootstrapDBName(), false);
        } catch (Exception e) {
            LOG.fatal("Unable to open BootstrapDB Connection !!", e);
            throw new RuntimeException("Got exception when getting bootstrap DB Connection.", e);
        }
    }
    try {
        conn = _dbDao.getBootstrapConn().getDBConn();
    } catch (SQLException e) {
        LOG.fatal("Not able to open BootstrapDB Connection !!", e);
        throw new RuntimeException("Got exception when getting bootstrap DB Connection.", e);
    }
    return conn;
}
Also used : SQLException(java.sql.SQLException) BootstrapConn(com.linkedin.databus.bootstrap.common.BootstrapConn) Connection(java.sql.Connection) BootstrapDBMetaDataDAO(com.linkedin.databus.bootstrap.common.BootstrapDBMetaDataDAO) SQLException(java.sql.SQLException) ParseException(org.apache.commons.cli.ParseException)

Example 7 with BootstrapConn

use of com.linkedin.databus.bootstrap.common.BootstrapConn in project databus by linkedin.

the class BootstrapProducerCallback method getConnection.

private Connection getConnection() throws SQLException {
    Connection conn = null;
    if (_bootstrapDao == null) {
        BootstrapConn dbConn = new BootstrapConn();
        try {
            final boolean autoCommit = false;
            dbConn.initBootstrapConn(autoCommit, _config.getBootstrapDBUsername(), _config.getBootstrapDBPassword(), _config.getBootstrapDBHostname(), _config.getBootstrapDBName());
            _bootstrapDao = new BootstrapDBMetaDataDAO(dbConn, _config.getBootstrapDBHostname(), _config.getBootstrapDBUsername(), _config.getBootstrapDBPassword(), _config.getBootstrapDBName(), autoCommit);
        } catch (Exception e) {
            LOG.fatal("Unable to open BootstrapDB Connection !!", e);
            return null;
        }
    }
    try {
        conn = _bootstrapDao.getBootstrapConn().getDBConn();
    } catch (SQLException e) {
        if (null != _statsCollector)
            _statsCollector.registerSQLException();
        LOG.fatal("Not able to open BootstrapDB Connection !!", e);
        throw e;
    }
    return conn;
}
Also used : SQLException(java.sql.SQLException) BootstrapConn(com.linkedin.databus.bootstrap.common.BootstrapConn) Connection(java.sql.Connection) BootstrapDBMetaDataDAO(com.linkedin.databus.bootstrap.common.BootstrapDBMetaDataDAO) ScnNotFoundException(com.linkedin.databus.core.ScnNotFoundException) SQLException(java.sql.SQLException) DatabusException(com.linkedin.databus2.core.DatabusException)

Example 8 with BootstrapConn

use of com.linkedin.databus.bootstrap.common.BootstrapConn in project databus by linkedin.

the class BootstrapTableReader method getConnection.

public Connection getConnection() {
    Connection conn = null;
    if (_bootstrapConn == null) {
        LOG.info("<<<< Creating Bootstrap Connection!! >>>>");
        _bootstrapConn = new BootstrapConn();
        try {
            _bootstrapConn.initBootstrapConn(false, _bsStaticConfig.getBootstrap().getBootstrapDBUsername(), _bsStaticConfig.getBootstrap().getBootstrapDBPassword(), _bsStaticConfig.getBootstrap().getBootstrapDBHostname(), _bsStaticConfig.getBootstrap().getBootstrapDBName());
        } catch (Exception e) {
            LOG.fatal("Unable to open BootstrapDB Connection !!", e);
            throw new RuntimeException("Got exception when getting bootstrap DB Connection.", e);
        }
    }
    try {
        conn = _bootstrapConn.getDBConn();
    } catch (SQLException e) {
        LOG.fatal("Not able to open BootstrapDB Connection !!", e);
        throw new RuntimeException("Got exception when getting bootstrap DB Connection.", e);
    }
    return conn;
}
Also used : SQLException(java.sql.SQLException) BootstrapConn(com.linkedin.databus.bootstrap.common.BootstrapConn) Connection(java.sql.Connection) SQLException(java.sql.SQLException) InvalidConfigException(com.linkedin.databus.core.util.InvalidConfigException) IOException(java.io.IOException) ParseException(org.apache.commons.cli.ParseException)

Example 9 with BootstrapConn

use of com.linkedin.databus.bootstrap.common.BootstrapConn in project databus by linkedin.

the class BootstrapTableReaderV2 method createBstConnection.

private BootstrapConn createBstConnection() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
    _log.info("<<<< Creating Bootstrap Connection >>>>");
    BootstrapConn bstConn = new BootstrapConn();
    bstConn.initBootstrapConn(true, _bstConfig.getBootstrapDBUsername(), _bstConfig.getBootstrapDBPassword(), _bstConfig.getBootstrapDBHostname(), _bstConfig.getBootstrapDBName());
    return bstConn;
}
Also used : BootstrapConn(com.linkedin.databus.bootstrap.common.BootstrapConn)

Example 10 with BootstrapConn

use of com.linkedin.databus.bootstrap.common.BootstrapConn in project databus by linkedin.

the class TestBootstrap method testBootstrapProcessor.

@Test
public void testBootstrapProcessor() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException, IOException, BootstrapProcessingException, DatabusException, BootstrapDatabaseTooOldException, BootstrapDBException {
    EventProcessor processorCallback = new EventProcessor();
    BootstrapConfig config = new BootstrapConfig();
    BootstrapReadOnlyConfig staticConfig = config.build();
    BootstrapServerConfig configBuilder = new BootstrapServerConfig();
    configBuilder.setEnableMinScnCheck(false);
    BootstrapServerStaticConfig staticServerConfig = configBuilder.build();
    BootstrapProcessor processor = new BootstrapProcessor(staticServerConfig, null);
    String sourceName = "TestBootstrap.testBootstrapProcessor.events";
    // Create the tables for all the sources before starting up the threads
    BootstrapConn _bootstrapConn = new BootstrapConn();
    boolean autoCommit = true;
    _bootstrapConn.initBootstrapConn(autoCommit, staticConfig.getBootstrapDBUsername(), staticConfig.getBootstrapDBPassword(), staticConfig.getBootstrapDBHostname(), staticConfig.getBootstrapDBName());
    BootstrapDBMetaDataDAO dao = new BootstrapDBMetaDataDAO(_bootstrapConn, staticConfig.getBootstrapDBHostname(), staticConfig.getBootstrapDBUsername(), staticConfig.getBootstrapDBPassword(), staticConfig.getBootstrapDBName(), autoCommit);
    SourceStatusInfo srcStatusInfo = dao.getSrcIdStatusFromDB(sourceName, false);
    if (srcStatusInfo.getSrcId() >= 0) {
        dao.dropSourceInDB(srcStatusInfo.getSrcId());
    }
    dao.addNewSourceInDB(sourceName, BootstrapProducerStatus.ACTIVE);
    srcStatusInfo = dao.getSrcIdStatusFromDB(sourceName, false);
    setBootstrapLoginfoTable(_bootstrapConn, 0, Long.MAX_VALUE);
    //insert one row
    insertOneSnapshotEvent(dao, srcStatusInfo.getSrcId(), Long.MAX_VALUE - 10, Long.MAX_VALUE - 100, "check", "test_payload_data");
    BootstrapCheckpointHandler bstCheckpointHandler = new BootstrapCheckpointHandler(sourceName);
    Checkpoint c = bstCheckpointHandler.createInitialBootstrapCheckpoint(null, 0L);
    c.setConsumptionMode(DbusClientMode.BOOTSTRAP_SNAPSHOT);
    c.setBootstrapStartScn(Long.MAX_VALUE - 10);
    c.setSnapshotOffset(Long.MAX_VALUE - 1000);
    // System.out.println("Snapshot");
    processor.streamSnapShotRows(c, processorCallback);
    Assert.assertEquals(processorCallback.getrIds().size(), 1);
    Assert.assertEquals(Long.MAX_VALUE - 10, processorCallback.getrIds().get(0).longValue());
    Assert.assertEquals(Long.MAX_VALUE - 100, processorCallback.getSequences().get(0).longValue());
    Assert.assertEquals("check", processorCallback.getSrcKeys().get(0));
    Assert.assertEquals("test_payload_data", new String(processorCallback.getValues().get(0)));
    processorCallback.reset();
    c.setSnapshotOffset(Checkpoint.FULLY_CONSUMED_WINDOW_OFFSET);
    c.setBootstrapTargetScn(c.getBootstrapStartScn().longValue());
    bstCheckpointHandler.advanceAfterTargetScn(c);
    bstCheckpointHandler.advanceAfterSnapshotPhase(c);
    //		  c.setConsumptionMode(DbusClientMode.BOOTSTRAP_CATCHUP);
    //		  c.setCatchupSource(sourceName);
    //		  c.setWindowScn(0L);
    //		  c.setWindowOffset(0);
    // System.out.println("Catchup");
    boolean phaseCompleted = processor.streamCatchupRows(c, processorCallback);
    Assert.assertEquals(true, phaseCompleted);
}
Also used : BootstrapProcessor(com.linkedin.databus.bootstrap.server.BootstrapProcessor) BootstrapConn(com.linkedin.databus.bootstrap.common.BootstrapConn) BootstrapConfig(com.linkedin.databus.bootstrap.common.BootstrapConfig) BootstrapDBMetaDataDAO(com.linkedin.databus.bootstrap.common.BootstrapDBMetaDataDAO) BootstrapCheckpointHandler(com.linkedin.databus.core.BootstrapCheckpointHandler) BootstrapReadOnlyConfig(com.linkedin.databus.bootstrap.common.BootstrapReadOnlyConfig) BootstrapServerConfig(com.linkedin.databus.bootstrap.server.BootstrapServerConfig) Checkpoint(com.linkedin.databus.core.Checkpoint) BootstrapServerStaticConfig(com.linkedin.databus.bootstrap.server.BootstrapServerStaticConfig) SourceStatusInfo(com.linkedin.databus.bootstrap.common.BootstrapDBMetaDataDAO.SourceStatusInfo) Test(org.testng.annotations.Test)

Aggregations

BootstrapConn (com.linkedin.databus.bootstrap.common.BootstrapConn)11 BootstrapDBMetaDataDAO (com.linkedin.databus.bootstrap.common.BootstrapDBMetaDataDAO)9 SQLException (java.sql.SQLException)7 Connection (java.sql.Connection)6 ParseException (org.apache.commons.cli.ParseException)4 BootstrapConfig (com.linkedin.databus.bootstrap.common.BootstrapConfig)3 SourceStatusInfo (com.linkedin.databus.bootstrap.common.BootstrapDBMetaDataDAO.SourceStatusInfo)3 BootstrapReadOnlyConfig (com.linkedin.databus.bootstrap.common.BootstrapReadOnlyConfig)3 Checkpoint (com.linkedin.databus.core.Checkpoint)2 IOException (java.io.IOException)2 Test (org.testng.annotations.Test)2 BootstrapProcessor (com.linkedin.databus.bootstrap.server.BootstrapProcessor)1 BootstrapServerConfig (com.linkedin.databus.bootstrap.server.BootstrapServerConfig)1 BootstrapServerStaticConfig (com.linkedin.databus.bootstrap.server.BootstrapServerStaticConfig)1 BootstrapCheckpointHandler (com.linkedin.databus.core.BootstrapCheckpointHandler)1 InvalidEventException (com.linkedin.databus.core.InvalidEventException)1 KeyTypeNotImplementedException (com.linkedin.databus.core.KeyTypeNotImplementedException)1 ScnNotFoundException (com.linkedin.databus.core.ScnNotFoundException)1 ConfigLoader (com.linkedin.databus.core.util.ConfigLoader)1 InvalidConfigException (com.linkedin.databus.core.util.InvalidConfigException)1