Search in sources :

Example 6 with LogicalSourceStaticConfig

use of com.linkedin.databus2.relay.config.LogicalSourceStaticConfig in project databus by linkedin.

the class OpenReplicatorEventProducerServiceProvider method buildPartitionFunction.

public PartitionFunction buildPartitionFunction(LogicalSourceStaticConfig sourceConfig) throws InvalidConfigException {
    String partitionFunction = sourceConfig.getPartitionFunction();
    if (partitionFunction.startsWith("constant:")) {
        try {
            String numberPart = partitionFunction.substring("constant:".length()).trim();
            short constantPartitionNumber = Short.valueOf(numberPart);
            return new ConstantPartitionFunction(constantPartitionNumber);
        } catch (Exception ex) {
            // Could be a NumberFormatException, IndexOutOfBoundsException or other exception when trying to parse the partition number.
            throw new InvalidConfigException("Invalid partition configuration (" + partitionFunction + "). " + "Could not parse the constant partition number.");
        }
    } else {
        throw new InvalidConfigException("Invalid partition configuration (" + partitionFunction + ").");
    }
}
Also used : InvalidConfigException(com.linkedin.databus.core.util.InvalidConfigException) DatabusException(com.linkedin.databus2.core.DatabusException) InvalidConfigException(com.linkedin.databus.core.util.InvalidConfigException) UnsupportedKeyException(com.linkedin.databus.core.UnsupportedKeyException) NoSuchSchemaException(com.linkedin.databus2.schemas.NoSuchSchemaException)

Example 7 with LogicalSourceStaticConfig

use of com.linkedin.databus2.relay.config.LogicalSourceStaticConfig in project databus by linkedin.

the class OpenReplicatorEventProducerServiceProvider method buildEventFactory.

public OpenReplicatorAvroEventFactory buildEventFactory(LogicalSourceStaticConfig sourceConfig, PhysicalSourceStaticConfig pConfig, SchemaRegistryService schemaRegistryService) throws DatabusException, EventCreationException, UnsupportedKeyException, InvalidConfigException {
    String schema = null;
    try {
        schema = schemaRegistryService.fetchLatestSchemaBySourceName(sourceConfig.getName());
    } catch (NoSuchSchemaException e) {
        throw new InvalidConfigException("Unable to load the schema for source (" + sourceConfig.getName() + ").");
    }
    if (schema == null) {
        throw new InvalidConfigException("Unable to load the schema for source (" + sourceConfig.getName() + ").");
    }
    LOG.info("Loading schema for source id " + sourceConfig.getId() + ": " + schema);
    String eventViewSchema;
    String eventView;
    if (sourceConfig.getUri().indexOf('.') != -1) {
        String[] parts = sourceConfig.getUri().split("\\.");
        eventViewSchema = parts[0];
        eventView = parts[1];
    } else {
        eventViewSchema = null;
        eventView = sourceConfig.getUri();
    }
    PartitionFunction partitionFunction = buildPartitionFunction(sourceConfig);
    OpenReplicatorAvroEventFactory factory = createEventFactory(eventViewSchema, eventView, sourceConfig, pConfig, schema, partitionFunction);
    return factory;
}
Also used : PartitionFunction(com.linkedin.databus2.producers.PartitionFunction) NoSuchSchemaException(com.linkedin.databus2.schemas.NoSuchSchemaException) InvalidConfigException(com.linkedin.databus.core.util.InvalidConfigException)

Example 8 with LogicalSourceStaticConfig

use of com.linkedin.databus2.relay.config.LogicalSourceStaticConfig in project databus by linkedin.

the class OracleEventProducerFactory method buildPartitionFunction.

public PartitionFunction buildPartitionFunction(LogicalSourceStaticConfig sourceConfig) throws InvalidConfigException {
    String partitionFunction = sourceConfig.getPartitionFunction();
    if (partitionFunction.startsWith("constant:")) {
        try {
            String numberPart = partitionFunction.substring("constant:".length()).trim();
            short constantPartitionNumber = Short.valueOf(numberPart);
            return new ConstantPartitionFunction(constantPartitionNumber);
        } catch (Exception ex) {
            // Could be a NumberFormatException, IndexOutOfBoundsException or other exception when trying to parse the partition number.
            throw new InvalidConfigException("Invalid partition configuration (" + partitionFunction + "). " + "Could not parse the constant partition number.");
        }
    } else {
        throw new InvalidConfigException("Invalid partition configuration (" + partitionFunction + ").");
    }
}
Also used : ConstantPartitionFunction(com.linkedin.databus2.producers.ConstantPartitionFunction) InvalidConfigException(com.linkedin.databus.core.util.InvalidConfigException) UnsupportedKeyException(com.linkedin.databus.core.UnsupportedKeyException) SQLException(java.sql.SQLException) NoSuchSchemaException(com.linkedin.databus2.schemas.NoSuchSchemaException) EventCreationException(com.linkedin.databus2.producers.EventCreationException) DatabusException(com.linkedin.databus2.core.DatabusException) InvalidConfigException(com.linkedin.databus.core.util.InvalidConfigException)

Example 9 with LogicalSourceStaticConfig

use of com.linkedin.databus2.relay.config.LogicalSourceStaticConfig in project databus by linkedin.

the class DbusEventBufferMult method addBuffer.

/**
 * add another buffer with the mappings
 */
public synchronized void addBuffer(PhysicalSourceStaticConfig pConfig, DbusEventBuffer buf) {
    LOG.info("addBuffer for phSrc=" + pConfig + "; buf=" + buf.hashCode());
    PhysicalPartition pPartition = pConfig.getPhysicalPartition();
    PhysicalPartitionKey pKey = new PhysicalPartitionKey(pPartition);
    _bufsMap.put(pKey, buf);
    _uniqBufs.add(buf);
    buf.setDropOldEvents(_dropOldEvents);
    for (LogicalSourceStaticConfig lSrc : pConfig.getSources()) {
        updateLogicalSourceMapping(pKey, lSrc.getLogicalSource(), lSrc.getPartition());
    }
}
Also used : LogicalSourceStaticConfig(com.linkedin.databus2.relay.config.LogicalSourceStaticConfig) PhysicalPartition(com.linkedin.databus.core.data_model.PhysicalPartition)

Example 10 with LogicalSourceStaticConfig

use of com.linkedin.databus2.relay.config.LogicalSourceStaticConfig in project databus by linkedin.

the class PhysicalSourceConfig method build.

@Override
public PhysicalSourceStaticConfig build() throws InvalidConfigException {
    checkForNulls();
    // check config options for chained relays
    if (_largestEventSizeInBytes >= _largestWindowSizeInBytes) {
        throw new InvalidConfigException("Invalid relay config: largestEventSizeInBytes has to be lesser than largestWindowSizeInBytes:" + " largestEventSizeInBytes=" + _largestEventSizeInBytes + " largestWindowSizeInBytes=" + _largestWindowSizeInBytes);
    }
    LogicalSourceStaticConfig[] sourcesStaticConfigs = new LogicalSourceStaticConfig[_sources.size()];
    for (int i = 0; i < _sources.size(); ++i) {
        sourcesStaticConfigs[i] = _sources.get(i).build();
    }
    ChunkingType chunkingType = ChunkingType.valueOf(_chunkingType);
    return new PhysicalSourceStaticConfig(_name, _id, _uri, _resourceKey, sourcesStaticConfigs, _role, _slowSourceQueryThreshold, _restartScnOffset, _retries.build(), chunkingType, _txnsPerChunk, _scnChunkSize, _chunkedScnThreshold, _maxScnDelayMs, _eventRatePerSec, _maxThrottleDurationInSecs, isDbusEventBufferSet() ? _dbusEventBuffer.build() : null, _largestEventSizeInBytes, _largestWindowSizeInBytes, _errorOnMissingFields, _xmlVersion, _xmlEncoding, _replBitSetter.build());
}
Also used : InvalidConfigException(com.linkedin.databus.core.util.InvalidConfigException) ChunkingType(com.linkedin.databus2.relay.config.PhysicalSourceStaticConfig.ChunkingType)

Aggregations

InvalidConfigException (com.linkedin.databus.core.util.InvalidConfigException)8 NoSuchSchemaException (com.linkedin.databus2.schemas.NoSuchSchemaException)6 DatabusException (com.linkedin.databus2.core.DatabusException)5 UnsupportedKeyException (com.linkedin.databus.core.UnsupportedKeyException)4 LogicalSourceStaticConfig (com.linkedin.databus2.relay.config.LogicalSourceStaticConfig)4 ConstantPartitionFunction (com.linkedin.databus2.producers.ConstantPartitionFunction)3 PartitionFunction (com.linkedin.databus2.producers.PartitionFunction)3 EventSourceStatistics (com.linkedin.databus.monitoring.mbean.EventSourceStatistics)2 EventCreationException (com.linkedin.databus2.producers.EventCreationException)2 OracleTriggerMonitoredSourceInfo (com.linkedin.databus2.producers.db.OracleTriggerMonitoredSourceInfo)2 PhysicalSourceConfig (com.linkedin.databus2.relay.config.PhysicalSourceConfig)2 PhysicalSourceStaticConfig (com.linkedin.databus2.relay.config.PhysicalSourceStaticConfig)2 ChunkingType (com.linkedin.databus2.relay.config.PhysicalSourceStaticConfig.ChunkingType)2 SQLException (java.sql.SQLException)2 ArrayList (java.util.ArrayList)2 DbusEventBuffer (com.linkedin.databus.core.DbusEventBuffer)1 PhysicalPartition (com.linkedin.databus.core.data_model.PhysicalPartition)1 BackoffTimerStaticConfigBuilder (com.linkedin.databus2.core.BackoffTimerStaticConfigBuilder)1 EventProducer (com.linkedin.databus2.producers.EventProducer)1 EventFactory (com.linkedin.databus2.producers.db.EventFactory)1