public class DataService extends AbstractService implements IDataService
IDataService| Modifier and Type | Class and Description |
|---|---|
class |
DataService.DataMapper |
static class |
DataService.LastCaptureByChannelMapper |
protected class |
DataService.TableReloadRequestMapper |
protected class |
DataService.TableReloadStatusMapper |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Map<IHeartbeatListener,java.lang.Long> |
lastHeartbeatTimestamps |
log, parameterService, platform, sqlTemplate, sqlTemplateDirty, symmetricDialect, tablePrefix| Constructor and Description |
|---|
DataService(ISymmetricEngine engine,
IExtensionService extensionService) |
| Modifier and Type | Method and Description |
|---|---|
int |
cancelTableReloadRequest(TableReloadRequest request) |
protected void |
checkInterrupted() |
java.util.List<TableReloadRequest> |
collapseTableReloadRequestsByLoadId(java.util.List<TableReloadRequest> requests) |
protected java.util.Map<java.lang.String,TableReloadRequest> |
convertReloadListToMap(java.util.List<TableReloadRequest> reloadRequests,
java.util.List<TriggerRouter> triggerRouters,
boolean isFullLoad,
boolean isChannelLoad) |
long |
countDataGaps() |
int |
countDataInRange(long firstDataId,
long secondDataId)
Count the number of data ids in a range
|
Data |
createData(org.jumpmind.db.sql.ISqlTransaction transaction,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String whereClause) |
protected Data |
createData(org.jumpmind.db.sql.ISqlTransaction transaction,
Trigger trigger,
java.lang.String whereClause) |
Data |
createData(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName) |
Data |
createData(java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String whereClause) |
protected void |
createPurgeEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
java.lang.String sql,
Node targetNode,
Node sourceNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
boolean isLoad,
long loadId,
java.lang.String createBy) |
void |
createTableReloadStatus(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
java.lang.String sourceNodeId,
java.lang.String targetNodeId) |
void |
deleteAllDataGaps(org.jumpmind.db.sql.ISqlTransaction transaction) |
void |
deleteCapturedConfigChannelData() |
void |
deleteDataGap(DataGap gap) |
void |
deleteDataGap(org.jumpmind.db.sql.ISqlTransaction transaction,
DataGap gap) |
void |
deleteDataGaps(org.jumpmind.db.sql.ISqlTransaction transaction,
java.util.Collection<DataGap> gaps) |
protected void |
deleteTableReloadRequest(org.jumpmind.db.sql.ISqlTransaction sqlTransaction,
TableReloadRequest request) |
java.util.Date |
findCreateTimeOfData(long dataId) |
java.util.Date |
findCreateTimeOfEvent(long dataId) |
Data |
findData(long dataId) |
java.util.List<DataGap> |
findDataGaps() |
java.util.List<DataGap> |
findDataGapsUnchecked() |
long |
findMaxDataEventDataId() |
long |
findMaxDataId() |
long |
findMinDataId() |
java.util.Date |
findNextCreateTimeOfDataStartingAt(long dataId) |
boolean |
fixLastDataGap() |
java.util.List<TableReloadStatus> |
getActiveTableReloadStatus() |
protected java.lang.String |
getCsvDataFor(org.jumpmind.db.sql.ISqlTransaction transaction,
Trigger trigger,
TriggerHistory triggerHistory,
java.lang.String whereClause,
boolean pkOnly) |
protected long |
getDataCountForReload(org.jumpmind.db.model.Table table,
Node targetNode,
java.lang.String selectSql) |
org.jumpmind.db.sql.ISqlRowMapper<Data> |
getDataMapper() |
protected java.lang.String |
getDataOrderBy() |
protected java.lang.String |
getDataSelectByBatchSql(long batchId,
long startDataId,
java.lang.String channelId) |
protected java.lang.String |
getDataSelectSql(long batchId,
long startDataId,
boolean isContainsBigLob) |
protected java.lang.String |
getDataSelectSql(long batchId,
long startDataId,
java.lang.String channelId) |
protected java.util.List<IHeartbeatListener> |
getHeartbeatListeners(boolean force)
Get a list of
IHeartbeatListeners that are ready for a heartbeat
according to
IHeartbeatListener.getTimeBetweenHeartbeatsInSeconds() |
java.util.Map<java.lang.String,java.util.Date> |
getLastDataCaptureByChannel() |
TableReloadRequest |
getTableReloadRequest(long loadId) |
TableReloadRequest |
getTableReloadRequest(long loadId,
java.lang.String triggerId,
java.lang.String routerId) |
TableReloadRequest |
getTableReloadRequest(TableReloadRequestKey key) |
java.util.List<TableReloadRequest> |
getTableReloadRequestByLoadId() |
java.util.List<TableReloadRequest> |
getTableReloadRequests() |
java.util.List<TableReloadRequest> |
getTableReloadRequestToProcess(java.lang.String sourceNodeId) |
java.util.List<TableReloadStatus> |
getTableReloadStatus() |
TableReloadStatus |
getTableReloadStatusByLoadId(long loadId) |
java.util.List<TableReloadStatus> |
getTableReloadStatusByTarget(java.lang.String targetNodeId) |
protected int |
getTransformMultiplier(org.jumpmind.db.model.Table table,
TriggerRouter triggerRouter) |
void |
heartbeat(boolean force)
Update
Node information for this node and call IHeartbeatListeners. |
protected void |
insertCreateEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerHistory triggerHistory,
boolean isLoad,
long loadId,
java.lang.String createBy) |
void |
insertCreateEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerHistory triggerHistory,
java.lang.String channelId,
boolean isLoad,
long loadId,
java.lang.String createBy) |
void |
insertCreateEvent(Node targetNode,
TriggerHistory triggerHistory,
boolean isLoad,
long loadId,
java.lang.String createBy) |
void |
insertCreateEvent(Node targetNode,
TriggerHistory triggerHistory,
java.lang.String createBy) |
long |
insertData(Data data) |
long |
insertData(org.jumpmind.db.sql.ISqlTransaction transaction,
Data data) |
long |
insertDataAndDataEventAndOutgoingBatch(Data data,
java.lang.String nodeId,
boolean isLoad,
long loadId,
java.lang.String createBy) |
void |
insertDataAndDataEventAndOutgoingBatch(Data data,
java.lang.String channelId,
java.util.List<Node> nodes,
boolean isLoad,
long loadId,
java.lang.String createBy) |
long |
insertDataAndDataEventAndOutgoingBatch(org.jumpmind.db.sql.ISqlTransaction transaction,
Data data,
java.lang.String nodeId,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
long estimatedBatchRowCount) |
long |
insertDataAndDataEventAndOutgoingBatch(org.jumpmind.db.sql.ISqlTransaction transaction,
Data data,
java.lang.String nodeId,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
java.lang.String overrideChannelId,
long estimatedBatchRowCount) |
protected void |
insertDataEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
DataEvent dataEvent) |
protected void |
insertDataEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
long dataId,
long batchId) |
protected long |
insertDataEventAndOutgoingBatch(org.jumpmind.db.sql.ISqlTransaction transaction,
long dataId,
java.lang.String channelId,
java.lang.String nodeId,
org.jumpmind.symmetric.io.data.DataEventType eventType,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
java.lang.String tableName,
long estimatedBatchRowCount) |
void |
insertDataEvents(org.jumpmind.db.sql.ISqlTransaction transaction,
java.util.List<DataEvent> events) |
void |
insertDataGap(DataGap gap) |
void |
insertDataGap(org.jumpmind.db.sql.ISqlTransaction transaction,
DataGap gap) |
void |
insertDataGaps(org.jumpmind.db.sql.ISqlTransaction transaction,
java.util.Collection<DataGap> gaps) |
void |
insertHeartbeatEvent(Node node,
boolean isReload)
Because we can't add a trigger on the _node table, we are artificially
generating heartbeat events.
|
protected void |
insertPurgeEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
boolean isLoad,
java.lang.String overrideDeleteStatement,
long loadId,
java.lang.String createBy) |
long |
insertReloadEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
java.lang.String overrideInitialLoadSelect,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
long estimatedBatchRowCount) |
long |
insertReloadEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
java.lang.String overrideInitialLoadSelect,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
java.lang.String channelId,
long estimatedBatchRowCount) |
protected long |
insertReloadEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
java.lang.String overrideInitialLoadSelect,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
java.lang.String channelId,
long estimatedBatchRowCount,
boolean isImmediate) |
boolean |
insertReloadEvent(TableReloadRequest request,
boolean deleteAtClient) |
long |
insertReloadEventImmediate(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
java.lang.String overrideInitialLoadSelect,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
java.lang.String channelId,
long estimatedBatchRowCount) |
java.util.Map<java.lang.Integer,ExtractRequest> |
insertReloadEvents(Node targetNode,
boolean reverse,
java.util.List<TableReloadRequest> reloadRequests,
ProcessInfo processInfo,
java.util.List<TriggerRouter> triggerRouters,
java.util.Map<java.lang.Integer,ExtractRequest> extractRequests,
IReloadGenerator reloadGenerator) |
protected long |
insertRequestedOutgoingBatches(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
java.lang.String overrideInitialLoadSelect,
long loadId,
java.lang.String createBy,
java.lang.String channelId,
long totalRows,
long maxRowsPerBatch,
long batchCount) |
void |
insertScriptEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
java.lang.String channelId,
Node targetNode,
java.lang.String script,
boolean isLoad,
long loadId,
java.lang.String createBy) |
void |
insertScriptEvent(java.lang.String channelId,
Node targetNode,
java.lang.String script,
boolean isLoad,
long loadId,
java.lang.String createBy) |
void |
insertSqlEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
java.lang.String sql,
boolean isLoad,
long loadId,
java.lang.String createBy) |
void |
insertSqlEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
TriggerHistory history,
java.lang.String channelId,
Node targetNode,
java.lang.String sql,
boolean isLoad,
long loadId,
java.lang.String createBy) |
void |
insertSqlEvent(Node targetNode,
java.lang.String sql,
boolean isLoad,
long loadId,
java.lang.String createBy) |
void |
insertTableReloadRequest(org.jumpmind.db.sql.ISqlTransaction transaction,
TableReloadRequest request) |
void |
insertTableReloadRequest(TableReloadRequest request) |
java.util.List<Data> |
listData(long batchId,
java.lang.String nodeId,
long startDataId,
java.lang.String channelId,
int maxRowsToRetrieve) |
java.util.List<java.lang.Number> |
listDataIds(long batchId,
java.lang.String nodeId) |
void |
reloadMissingForeignKeyRows(java.lang.String nodeId,
long dataId) |
void |
reloadMissingForeignKeyRowsReverse(java.lang.String sourceNodeId,
org.jumpmind.db.model.Table table,
org.jumpmind.symmetric.io.data.CsvData data,
java.lang.String channelId,
boolean sendCorrectionToPeers) |
java.lang.String |
reloadNode(java.lang.String nodeId,
boolean reverseLoad,
java.lang.String createBy) |
java.lang.String |
reloadTable(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName) |
java.lang.String |
reloadTable(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String overrideInitialLoadSelect) |
protected java.lang.String |
reloadTable(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String overrideInitialLoadSelect,
java.lang.String overrideChannelId,
boolean isImmediate) |
java.lang.String |
reloadTableImmediate(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String overrideInitialLoadSelect,
java.lang.String overrideChannelId) |
java.util.List<java.lang.String> |
resolveTargetTables(java.lang.String sql,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
Node targetNode) |
org.jumpmind.db.sql.ISqlReadCursor<Data> |
selectDataFor(org.jumpmind.symmetric.io.data.Batch batch) |
org.jumpmind.db.sql.ISqlReadCursor<Data> |
selectDataFor(java.lang.Long batchId,
java.lang.String channelId) |
org.jumpmind.db.sql.ISqlReadCursor<Data> |
selectDataFor(java.lang.Long batchId,
java.lang.String targetNodeId,
boolean isContainsBigLob) |
boolean |
sendSchema(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
boolean isLoad) |
void |
sendScript(java.lang.String nodeId,
java.lang.String script,
boolean isLoad) |
java.lang.String |
sendSQL(java.lang.String nodeId,
java.lang.String sql) |
java.lang.String |
sendSQL(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String sql)
Sends a SQL command to the remote node for execution by creating a SQL event that is synced like other data
|
protected void |
updateLastHeartbeatTime(java.util.List<IHeartbeatListener> listeners) |
int |
updateTableReloadRequestsCancelled(long loadId) |
protected int |
updateTableReloadRequestsError(long loadId,
org.jumpmind.db.sql.SqlException e) |
void |
updateTableReloadRequestsLoadId(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
TableReloadRequest request) |
void |
updateTableReloadStatusDataCounts(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
long startBatchId,
long endBatchId,
long dataBatchCount,
long rowsCount) |
void |
updateTableReloadStatusDataLoaded(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
long batchId,
int batchCount) |
void |
updateTableReloadStatusSetupCount(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
int setupBatchCount) |
void |
updateTableReloadStatusTableCount(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
int tableCount) |
protected void |
validate(TableReloadRequest reloadRequest,
java.util.List<TriggerRouter> triggerRouters) |
assertNotNull, buildBatchWhere, close, createSqlReplacementTokens, createSqlReplacementTokens, getJdbcTemplate, getParameterService, getSql, getSymmetricDialect, getTablePrefix, getTargetDialect, getTargetPlatform, getTargetPlatform, isCalledFromSymmetricAdminTool, isSet, isStreamClosedByClient, isSymmetricTable, logOnce, maxDate, readAcks, sendAck, setSqlMap, synchronize, toNodeIds, toNodeIdsprotected java.util.Map<IHeartbeatListener,java.lang.Long> lastHeartbeatTimestamps
public DataService(ISymmetricEngine engine, IExtensionService extensionService)
public boolean insertReloadEvent(TableReloadRequest request, boolean deleteAtClient)
insertReloadEvent in interface IDataServicepublic int cancelTableReloadRequest(TableReloadRequest request)
cancelTableReloadRequest in interface IDataServiceprotected void deleteTableReloadRequest(org.jumpmind.db.sql.ISqlTransaction sqlTransaction,
TableReloadRequest request)
public void insertTableReloadRequest(TableReloadRequest request)
insertTableReloadRequest in interface IDataServicepublic void insertTableReloadRequest(org.jumpmind.db.sql.ISqlTransaction transaction,
TableReloadRequest request)
insertTableReloadRequest in interface IDataServicepublic TableReloadRequest getTableReloadRequest(TableReloadRequestKey key)
getTableReloadRequest in interface IDataServicepublic TableReloadRequest getTableReloadRequest(long loadId)
getTableReloadRequest in interface IDataServicepublic TableReloadRequest getTableReloadRequest(long loadId, java.lang.String triggerId, java.lang.String routerId)
getTableReloadRequest in interface IDataServicepublic java.util.List<TableReloadRequest> getTableReloadRequestToProcess(java.lang.String sourceNodeId)
getTableReloadRequestToProcess in interface IDataServicepublic java.util.List<TableReloadRequest> getTableReloadRequests()
public java.util.List<TableReloadStatus> getTableReloadStatus()
getTableReloadStatus in interface IDataServicepublic java.util.List<TableReloadStatus> getActiveTableReloadStatus()
getActiveTableReloadStatus in interface IDataServicepublic TableReloadStatus getTableReloadStatusByLoadId(long loadId)
getTableReloadStatusByLoadId in interface IDataServicepublic java.util.List<TableReloadStatus> getTableReloadStatusByTarget(java.lang.String targetNodeId)
getTableReloadStatusByTarget in interface IDataServicepublic java.util.List<TableReloadRequest> getTableReloadRequestByLoadId()
public java.util.List<TableReloadRequest> collapseTableReloadRequestsByLoadId(java.util.List<TableReloadRequest> requests)
public void updateTableReloadStatusDataLoaded(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
long batchId,
int batchCount)
updateTableReloadStatusDataLoaded in interface IDataServicepublic void updateTableReloadStatusDataCounts(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
long startBatchId,
long endBatchId,
long dataBatchCount,
long rowsCount)
public void updateTableReloadRequestsLoadId(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
TableReloadRequest request)
public void updateTableReloadStatusTableCount(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
int tableCount)
public void createTableReloadStatus(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
java.lang.String sourceNodeId,
java.lang.String targetNodeId)
public void updateTableReloadStatusSetupCount(org.jumpmind.db.sql.ISqlTransaction transaction,
long loadId,
int setupBatchCount)
public int updateTableReloadRequestsCancelled(long loadId)
updateTableReloadRequestsCancelled in interface IDataServiceprotected int updateTableReloadRequestsError(long loadId,
org.jumpmind.db.sql.SqlException e)
protected long insertRequestedOutgoingBatches(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
java.lang.String overrideInitialLoadSelect,
long loadId,
java.lang.String createBy,
java.lang.String channelId,
long totalRows,
long maxRowsPerBatch,
long batchCount)
public long insertReloadEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
java.lang.String overrideInitialLoadSelect,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
long estimatedBatchRowCount)
insertReloadEvent in interface IDataServicepublic long insertReloadEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
java.lang.String overrideInitialLoadSelect,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
java.lang.String channelId,
long estimatedBatchRowCount)
estimatedBatchRowCount - TODOpublic long insertReloadEventImmediate(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
java.lang.String overrideInitialLoadSelect,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
java.lang.String channelId,
long estimatedBatchRowCount)
protected long insertReloadEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
java.lang.String overrideInitialLoadSelect,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
java.lang.String channelId,
long estimatedBatchRowCount,
boolean isImmediate)
public java.util.Map<java.lang.Integer,ExtractRequest> insertReloadEvents(Node targetNode, boolean reverse, java.util.List<TableReloadRequest> reloadRequests, ProcessInfo processInfo, java.util.List<TriggerRouter> triggerRouters, java.util.Map<java.lang.Integer,ExtractRequest> extractRequests, IReloadGenerator reloadGenerator)
insertReloadEvents in interface IDataServiceprotected java.util.Map<java.lang.String,TableReloadRequest> convertReloadListToMap(java.util.List<TableReloadRequest> reloadRequests, java.util.List<TriggerRouter> triggerRouters, boolean isFullLoad, boolean isChannelLoad)
protected void validate(TableReloadRequest reloadRequest, java.util.List<TriggerRouter> triggerRouters)
protected long getDataCountForReload(org.jumpmind.db.model.Table table,
Node targetNode,
java.lang.String selectSql)
throws org.jumpmind.db.sql.SqlException
org.jumpmind.db.sql.SqlExceptionprotected int getTransformMultiplier(org.jumpmind.db.model.Table table,
TriggerRouter triggerRouter)
protected void insertPurgeEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
boolean isLoad,
java.lang.String overrideDeleteStatement,
long loadId,
java.lang.String createBy)
public java.util.List<java.lang.String> resolveTargetTables(java.lang.String sql,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
Node targetNode)
protected void createPurgeEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
java.lang.String sql,
Node targetNode,
Node sourceNode,
TriggerRouter triggerRouter,
TriggerHistory triggerHistory,
boolean isLoad,
long loadId,
java.lang.String createBy)
public void insertSqlEvent(Node targetNode, java.lang.String sql, boolean isLoad, long loadId, java.lang.String createBy)
insertSqlEvent in interface IDataServicepublic void insertSqlEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
java.lang.String sql,
boolean isLoad,
long loadId,
java.lang.String createBy)
insertSqlEvent in interface IDataServicepublic void insertSqlEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
TriggerHistory history,
java.lang.String channelId,
Node targetNode,
java.lang.String sql,
boolean isLoad,
long loadId,
java.lang.String createBy)
insertSqlEvent in interface IDataServicepublic void insertScriptEvent(java.lang.String channelId,
Node targetNode,
java.lang.String script,
boolean isLoad,
long loadId,
java.lang.String createBy)
insertScriptEvent in interface IDataServicepublic void insertScriptEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
java.lang.String channelId,
Node targetNode,
java.lang.String script,
boolean isLoad,
long loadId,
java.lang.String createBy)
insertScriptEvent in interface IDataServicepublic int countDataInRange(long firstDataId,
long secondDataId)
IDataServicecountDataInRange in interface IDataServicepublic void insertCreateEvent(Node targetNode, TriggerHistory triggerHistory, boolean isLoad, long loadId, java.lang.String createBy)
insertCreateEvent in interface IDataServicepublic void insertCreateEvent(Node targetNode, TriggerHistory triggerHistory, java.lang.String createBy)
insertCreateEvent in interface IDataServiceprotected void insertCreateEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerHistory triggerHistory,
boolean isLoad,
long loadId,
java.lang.String createBy)
public void insertCreateEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
Node targetNode,
TriggerHistory triggerHistory,
java.lang.String channelId,
boolean isLoad,
long loadId,
java.lang.String createBy)
insertCreateEvent in interface IDataServicepublic long insertData(Data data)
insertData in interface IDataServicepublic long insertData(org.jumpmind.db.sql.ISqlTransaction transaction,
Data data)
insertData in interface IDataServiceprotected void insertDataEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
DataEvent dataEvent)
protected void insertDataEvent(org.jumpmind.db.sql.ISqlTransaction transaction,
long dataId,
long batchId)
public void insertDataEvents(org.jumpmind.db.sql.ISqlTransaction transaction,
java.util.List<DataEvent> events)
insertDataEvents in interface IDataServicepublic void insertDataAndDataEventAndOutgoingBatch(Data data, java.lang.String channelId, java.util.List<Node> nodes, boolean isLoad, long loadId, java.lang.String createBy)
insertDataAndDataEventAndOutgoingBatch in interface IDataServicepublic long insertDataAndDataEventAndOutgoingBatch(Data data, java.lang.String nodeId, boolean isLoad, long loadId, java.lang.String createBy)
insertDataAndDataEventAndOutgoingBatch in interface IDataServicepublic long insertDataAndDataEventAndOutgoingBatch(org.jumpmind.db.sql.ISqlTransaction transaction,
Data data,
java.lang.String nodeId,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
java.lang.String overrideChannelId,
long estimatedBatchRowCount)
estimatedBatchRowCount - TODOpublic long insertDataAndDataEventAndOutgoingBatch(org.jumpmind.db.sql.ISqlTransaction transaction,
Data data,
java.lang.String nodeId,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
long estimatedBatchRowCount)
insertDataAndDataEventAndOutgoingBatch in interface IDataServiceprotected long insertDataEventAndOutgoingBatch(org.jumpmind.db.sql.ISqlTransaction transaction,
long dataId,
java.lang.String channelId,
java.lang.String nodeId,
org.jumpmind.symmetric.io.data.DataEventType eventType,
boolean isLoad,
long loadId,
java.lang.String createBy,
AbstractBatch.Status status,
java.lang.String tableName,
long estimatedBatchRowCount)
public java.lang.String reloadNode(java.lang.String nodeId,
boolean reverseLoad,
java.lang.String createBy)
reloadNode in interface IDataServicepublic void sendScript(java.lang.String nodeId,
java.lang.String script,
boolean isLoad)
sendScript in interface IDataServicepublic boolean sendSchema(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
boolean isLoad)
sendSchema in interface IDataServicepublic java.lang.String sendSQL(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String sql)
IDataServicesendSQL in interface IDataServicenodeId - the remote node where the SQL statement will be executedcatalogName - used to find the sym_trigger entry for table that will be associated with this eventschemaName - used to find the sym_trigger entry for table that will be associated with this eventtableName - used to find the sym_trigger entry for table that will be associated with this eventsql - the SQL statement to run on the remote node databasepublic java.lang.String sendSQL(java.lang.String nodeId,
java.lang.String sql)
sendSQL in interface IDataServicepublic java.lang.String reloadTable(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName)
reloadTable in interface IDataServicepublic java.lang.String reloadTable(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String overrideInitialLoadSelect)
reloadTable in interface IDataServicepublic java.lang.String reloadTableImmediate(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String overrideInitialLoadSelect,
java.lang.String overrideChannelId)
reloadTableImmediate in interface IDataServiceprotected java.lang.String reloadTable(java.lang.String nodeId,
java.lang.String catalogName,
java.lang.String schemaName,
java.lang.String tableName,
java.lang.String overrideInitialLoadSelect,
java.lang.String overrideChannelId,
boolean isImmediate)
public void reloadMissingForeignKeyRowsReverse(java.lang.String sourceNodeId,
org.jumpmind.db.model.Table table,
org.jumpmind.symmetric.io.data.CsvData data,
java.lang.String channelId,
boolean sendCorrectionToPeers)
reloadMissingForeignKeyRowsReverse in interface IDataServicepublic void reloadMissingForeignKeyRows(java.lang.String nodeId,
long dataId)
reloadMissingForeignKeyRows in interface IDataServicepublic void insertHeartbeatEvent(Node node, boolean isReload)
insertHeartbeatEvent in interface IDataServicenode - public Data createData(java.lang.String catalogName, java.lang.String schemaName, java.lang.String tableName)
createData in interface IDataServicepublic Data createData(java.lang.String catalogName, java.lang.String schemaName, java.lang.String tableName, java.lang.String whereClause)
createData in interface IDataServicepublic Data createData(org.jumpmind.db.sql.ISqlTransaction transaction, java.lang.String catalogName, java.lang.String schemaName, java.lang.String tableName, java.lang.String whereClause)
createData in interface IDataServiceprotected Data createData(org.jumpmind.db.sql.ISqlTransaction transaction, Trigger trigger, java.lang.String whereClause)
protected java.lang.String getCsvDataFor(org.jumpmind.db.sql.ISqlTransaction transaction,
Trigger trigger,
TriggerHistory triggerHistory,
java.lang.String whereClause,
boolean pkOnly)
public long countDataGaps()
countDataGaps in interface IDataServicepublic java.util.List<DataGap> findDataGapsUnchecked()
findDataGapsUnchecked in interface IDataServicepublic java.util.List<DataGap> findDataGaps()
findDataGaps in interface IDataServicepublic long findMaxDataEventDataId()
public void insertDataGap(DataGap gap)
insertDataGap in interface IDataServicepublic void insertDataGap(org.jumpmind.db.sql.ISqlTransaction transaction,
DataGap gap)
insertDataGap in interface IDataServicepublic void insertDataGaps(org.jumpmind.db.sql.ISqlTransaction transaction,
java.util.Collection<DataGap> gaps)
insertDataGaps in interface IDataServicepublic void deleteDataGap(DataGap gap)
deleteDataGap in interface IDataServicepublic void deleteDataGap(org.jumpmind.db.sql.ISqlTransaction transaction,
DataGap gap)
deleteDataGap in interface IDataServicepublic void deleteDataGaps(org.jumpmind.db.sql.ISqlTransaction transaction,
java.util.Collection<DataGap> gaps)
deleteDataGaps in interface IDataServicepublic void deleteAllDataGaps(org.jumpmind.db.sql.ISqlTransaction transaction)
deleteAllDataGaps in interface IDataServicepublic java.util.Date findCreateTimeOfEvent(long dataId)
findCreateTimeOfEvent in interface IDataServicepublic java.util.Date findCreateTimeOfData(long dataId)
findCreateTimeOfData in interface IDataServicepublic java.util.Date findNextCreateTimeOfDataStartingAt(long dataId)
findNextCreateTimeOfDataStartingAt in interface IDataServiceprotected java.util.List<IHeartbeatListener> getHeartbeatListeners(boolean force)
IHeartbeatListeners that are ready for a heartbeat
according to
IHeartbeatListener.getTimeBetweenHeartbeatsInSeconds()force - if true, then return the entire list of
IHeartbeatListenersprotected void updateLastHeartbeatTime(java.util.List<IHeartbeatListener> listeners)
public void heartbeat(boolean force)
IDataServiceNode information for this node and call IHeartbeatListeners.heartbeat in interface IDataServiceIDataService#heartbeat()public java.util.List<java.lang.Number> listDataIds(long batchId,
java.lang.String nodeId)
listDataIds in interface IDataServicepublic java.util.List<Data> listData(long batchId, java.lang.String nodeId, long startDataId, java.lang.String channelId, int maxRowsToRetrieve)
listData in interface IDataServicepublic Data findData(long dataId)
findData in interface IDataServicepublic org.jumpmind.db.sql.ISqlRowMapper<Data> getDataMapper()
getDataMapper in interface IDataServicepublic org.jumpmind.db.sql.ISqlReadCursor<Data> selectDataFor(org.jumpmind.symmetric.io.data.Batch batch)
selectDataFor in interface IDataServicepublic org.jumpmind.db.sql.ISqlReadCursor<Data> selectDataFor(java.lang.Long batchId, java.lang.String targetNodeId, boolean isContainsBigLob)
selectDataFor in interface IDataServicepublic org.jumpmind.db.sql.ISqlReadCursor<Data> selectDataFor(java.lang.Long batchId, java.lang.String channelId)
selectDataFor in interface IDataServiceprotected java.lang.String getDataSelectByBatchSql(long batchId,
long startDataId,
java.lang.String channelId)
protected java.lang.String getDataSelectSql(long batchId,
long startDataId,
java.lang.String channelId)
protected java.lang.String getDataSelectSql(long batchId,
long startDataId,
boolean isContainsBigLob)
protected java.lang.String getDataOrderBy()
public long findMaxDataId()
findMaxDataId in interface IDataServicepublic long findMinDataId()
findMinDataId in interface IDataServicepublic void deleteCapturedConfigChannelData()
deleteCapturedConfigChannelData in interface IDataServicepublic java.util.Map<java.lang.String,java.util.Date> getLastDataCaptureByChannel()
getLastDataCaptureByChannel in interface IDataServicepublic boolean fixLastDataGap()
fixLastDataGap in interface IDataServiceprotected void checkInterrupted()
throws java.lang.InterruptedException
java.lang.InterruptedException