Skip to content

Commit

Permalink
Redo the remove inactive triggers logic
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Nov 17, 2009
1 parent c25758b commit 6acb71d
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 22 deletions.
Expand Up @@ -53,8 +53,6 @@ public interface ITriggerRouterService {

public List<TriggerRouter> getActiveTriggerRoutersForReload(String sourceNodeGroupId, String targetNodeGroupId);

public List<TriggerRouter> getInactiveTriggerRouters(String sourceNodeGroupId);

public TriggerRouter findTriggerRouter(String table, String sourceNodeGroupId);

public TriggerRouter findTriggerRouter(String table, String sourceNodeGroupId, String targetNodeGroupId, String channel);
Expand Down
Expand Up @@ -278,10 +278,10 @@ public List<TriggerRouter> getActiveTriggerRoutersForReload(String sourceNodeGro
Constants.CHANNEL_CONFIG }, new TriggerRouterMapper());
}

public List<TriggerRouter> getInactiveTriggerRouters(String sourceNodeGroupId) {
return (List<TriggerRouter>) jdbcTemplate.query(getTriggerRouterSqlPrefix()
+ getSql("inactiveTriggersForSourceNodeGroupSql"), new Object[] { sourceNodeGroupId },
new TriggerRouterMapper());
protected List<TriggerHistory> getInactiveTriggerHistories() {
return (List<TriggerHistory>) jdbcTemplate.query(getSql("allTriggerHistSql")
+ getSql("inactiveTriggerHistoryWhereSql"), new Object[] { tablePrefix.toUpperCase() + "_%" },
new TriggerHistoryMapper());
}

public TriggerRouter findTriggerRouter(String table, String sourceNodeGroupId, String targetNodeGroupId,
Expand Down Expand Up @@ -429,23 +429,20 @@ public void syncTriggers(StringBuilder sqlBuffer, boolean gen_always) {
}

protected void removeInactiveTriggers(StringBuilder sqlBuffer) {
List<Trigger> triggers = new TriggerSelector(getInactiveTriggerRouters(parameterService
.getString(ParameterConstants.NODE_GROUP_ID))).select();
for (Trigger trigger : triggers) {
TriggerHistory history = getNewestTriggerHistoryForTrigger(trigger.getTriggerId());
if (history != null) {
List<TriggerHistory> triggers = getInactiveTriggerHistories();
for (TriggerHistory history : triggers) {
log.info("TriggersRemoving", history.getSourceTableName());
dbDialect.removeTrigger(sqlBuffer, history.getSourceCatalogName(), history.getSourceSchemaName(),
history.getNameForInsertTrigger(), trigger.getSourceTableName(), history);
history.getNameForInsertTrigger(), history.getSourceTableName(), history);
dbDialect.removeTrigger(sqlBuffer, history.getSourceCatalogName(), history.getSourceSchemaName(),
history.getNameForDeleteTrigger(), trigger.getSourceTableName(), history);
history.getNameForDeleteTrigger(), history.getSourceTableName(), history);
dbDialect.removeTrigger(sqlBuffer, history.getSourceCatalogName(), history.getSourceSchemaName(),
history.getNameForUpdateTrigger(), trigger.getSourceTableName(), history);
history.getNameForUpdateTrigger(), history.getSourceTableName(), history);

if (parameterService.is(ParameterConstants.AUTO_SYNC_TRIGGERS)) {
if (this.triggerCreationListeners != null) {
for (ITriggerCreationListener l : this.triggerCreationListeners) {
l.triggerInactivated(trigger, history);
l.triggerInactivated(null, history);
}
}
}
Expand All @@ -461,10 +458,6 @@ protected void removeInactiveTriggers(StringBuilder sqlBuffer) {
} else {
inactivateTriggerHistory(history);
}

} else {
log.info("TriggersRemovingSkipped");
}
}
}

Expand Down
Expand Up @@ -98,9 +98,9 @@
tr.initial_load_order
</value>
</entry>
<entry key="inactiveTriggersForSourceNodeGroupSql">
<entry key="inactiveTriggerHistoryWhereSql">
<value>
where r.source_node_group_id = ?
where trigger_id not in (select trigger_id from $[sym.sync.table.prefix]_trigger) and source_table_name not like ?
</value>
</entry>
<entry key="allTriggerHistSql">
Expand Down
Expand Up @@ -225,7 +225,6 @@ TriggerTableMissing=The configured table does not exist in the datasource that i
TriggerUnavailable=The trigger %s is no longer available for an initial load.
TriggersRemoving=About to remove triggers for inactivated table: %s
TriggersRemovingFailed=There are triggers that have been marked as inactive. Please remove triggers represented by trigger_id=%s and trigger_hist_id=%s
TriggersRemovingSkipped=A trigger was inactivated that had not yet been built, taking no action.
TriggerSynchronizingFailed=Failed to synchronize trigger for %s
TriggersSynchronizing=Synchronizing triggers.
TriggersSynchronizingFailedLock=Did not run the syncTriggers process because the cluster service has it locked
Expand Down

0 comments on commit 6acb71d

Please sign in to comment.