diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/ITriggerRouterService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/ITriggerRouterService.java index fbd85df6fd..f63f433a8b 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/ITriggerRouterService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/ITriggerRouterService.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.Map; import java.util.Set; - + import org.jumpmind.db.model.Table; import org.jumpmind.symmetric.config.ITriggerCreationListener; import org.jumpmind.symmetric.model.Node; @@ -54,7 +54,9 @@ public interface ITriggerRouterService { * @param sourceGroupId group id of the node being registered with * @param targetGroupId group id of the node that is registering */ - public List buildTriggerRoutersForSymmetricTables(String version, NodeGroupLink nodeGroupLink, String... tablesToExclude); + public List buildTriggerRoutersForSymmetricTables(String version, NodeGroupLink nodeGroupLink, String... tablesToExclude); + + public String buildSymmetricTableRouterId(String triggerId, String sourceNodeGroupId, String targetNodeGroupId); public Trigger getTriggerForCurrentNodeById(String triggerId); diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java index b0ad32017a..a678a9843c 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java @@ -530,9 +530,12 @@ private void insertFileSyncBatchForReload(Node targetNode, long loadId, String c TriggerHistory fileSyncSnapshotHistory = triggerRouterService.findTriggerHistory(null, null, TableConstants.getTableName(tablePrefix, TableConstants.SYM_FILE_SNAPSHOT)); + String routerid = triggerRouterService.buildSymmetricTableRouterId( + fileSyncSnapshotHistory.getTriggerId(), parameterService.getNodeGroupId(), + targetNode.getNodeGroupId()); TriggerRouter fileSyncSnapshotTriggerRouter = triggerRouterService .getTriggerRouterForCurrentNode(fileSyncSnapshotHistory.getTriggerId(), - fileSyncSnapshotHistory.getTriggerId(), true); + routerid, true); // file sync reload event needs to be on the file sync channel to be // processed insertReloadEvent(transaction, targetNode, fileSyncSnapshotTriggerRouter, diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java index ada489ae48..bdf3a8ccc8 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java @@ -428,6 +428,10 @@ public List buildTriggerRoutersForSymmetricTables(String version, } return triggerRouters; } + + public String buildSymmetricTableRouterId(String triggerId, String sourceNodeGroupId, String targetNodeGroupId) { + return String.format("%s_%s_2_%s", triggerId, sourceNodeGroupId, targetNodeGroupId); + } protected TriggerRouter buildTriggerRoutersForSymmetricTables(String version, Trigger trigger, NodeGroupLink nodeGroupLink) { @@ -435,7 +439,7 @@ protected TriggerRouter buildTriggerRoutersForSymmetricTables(String version, Tr triggerRouter.setTrigger(trigger); Router router = triggerRouter.getRouter(); - router.setRouterId(trigger.getTriggerId()); + router.setRouterId(buildSymmetricTableRouterId(trigger.getTriggerId(), nodeGroupLink.getSourceNodeGroupId(), nodeGroupLink.getTargetNodeGroupId())); if (TableConstants.getTableName(tablePrefix, TableConstants.SYM_FILE_SNAPSHOT).equals( trigger.getSourceTableName())) { router.setRouterType(FileSyncDataRouter.ROUTER_TYPE); @@ -716,11 +720,11 @@ public List getRouters() { } public List getAllTriggerRoutersForCurrentNode(String sourceNodeGroupId) { - List triggers = (List) sqlTemplate.query( + List triggerRouters = (List) sqlTemplate.query( getTriggerRouterSql("activeTriggersForSourceNodeGroupSql"), new TriggerRouterMapper(), sourceNodeGroupId); - mergeInConfigurationTablesTriggerRoutersForCurrentNode(sourceNodeGroupId, triggers); - return triggers; + mergeInConfigurationTablesTriggerRoutersForCurrentNode(sourceNodeGroupId, triggerRouters); + return triggerRouters; } public List getAllTriggerRoutersForReloadForCurrentNode(