diff --git a/src/org/redkale/cluster/CacheClusterAgent.java b/src/org/redkale/cluster/CacheClusterAgent.java index 71013521a..cb49cd6b1 100644 --- a/src/org/redkale/cluster/CacheClusterAgent.java +++ b/src/org/redkale/cluster/CacheClusterAgent.java @@ -272,6 +272,9 @@ public class CacheClusterAgent extends ClusterAgent implements Resourcable { } source.hremove(servicename, serviceid); if (realcanceled && currEntry != null) currEntry.canceled = true; + if (!"mqtp".equals(protocol) && currEntry != null && currEntry.submqtp) { + deregister(ns, "mqtp", service, realcanceled); + } } @Override diff --git a/src/org/redkale/cluster/ClusterAgent.java b/src/org/redkale/cluster/ClusterAgent.java index ab7b61be5..35b7cb620 100644 --- a/src/org/redkale/cluster/ClusterAgent.java +++ b/src/org/redkale/cluster/ClusterAgent.java @@ -116,6 +116,7 @@ public abstract class ClusterAgent { register(ns, "mqtp", service); ClusterEntry mqentry = new ClusterEntry(ns, "mqtp", service); localEntrys.put(mqentry.serviceid, mqentry); + htentry.submqtp = true; } } } @@ -313,6 +314,8 @@ public abstract class ClusterAgent { public boolean canceled; + public boolean submqtp; + public ClusterEntry(NodeServer ns, String protocol, Service service) { this.serviceid = generateServiceId(ns, protocol, service); this.servicename = generateServiceName(ns, protocol, service);