[ https://issues.apache.org/jira/browse/GEODE-8202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17259328#comment-17259328 ]
ASF GitHub Bot commented on GEODE-8202: --------------------------------------- boglesby commented on pull request #5600: URL: https://github.com/apache/geode/pull/5600#issuecomment-755014843 Here is a another diff with the versioning changes to GatewaySenderAdvisor: ``` diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderAdvisor.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderAdvisor.java index adf80cb1e5..2390e7241e 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderAdvisor.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderAdvisor.java @@ -232,6 +232,16 @@ public class GatewaySenderAdvisor extends DistributionAdvisor { "Cannot create Gateway Sender %s with isDiskSynchronous %s because another cache has the same Gateway Sender defined with isDiskSynchronous %s", sp.Id, sp.isDiskSynchronous, sender.isDiskSynchronous())); } + + if (sp.getDistributedMember().getVersion().isNotOlderThan(KnownVersion.GEODE_1_14_0)) { + if (sp.enforceThreadsConnectSameReceiver != sender.getEnforceThreadsConnectSameReceiver()) { + throw new IllegalStateException( + String.format( + "Cannot create Gateway Sender %s with enforceThreadsConnectSameReceiver %s because another cache has the same Gateway Sender defined with enforceThreadsConnectSameReceiver %s", + sp.Id, sp.enforceThreadsConnectSameReceiver, + sender.getEnforceThreadsConnectSameReceiver())); + } + } } /** @@ -532,6 +542,8 @@ public class GatewaySenderAdvisor extends DistributionAdvisor { public ServerLocation serverLocation; + public boolean enforceThreadsConnectSameReceiver = false; + public GatewaySenderProfile(InternalDistributedMember memberId, int version) { super(memberId, version); } @@ -541,6 +553,12 @@ public class GatewaySenderAdvisor extends DistributionAdvisor { @Override public void fromData(DataInput in, DeserializationContext context) throws IOException, ClassNotFoundException { + fromDataPre_GEODE_1_14_0_0(in, context); + this.enforceThreadsConnectSameReceiver = in.readBoolean(); + } + + public void fromDataPre_GEODE_1_14_0_0(DataInput in, + DeserializationContext context) throws IOException, ClassNotFoundException { super.fromData(in, context); this.Id = DataSerializer.readString(in); this.startTime = in.readLong(); @@ -583,6 +601,12 @@ public class GatewaySenderAdvisor extends DistributionAdvisor { @Override public void toData(DataOutput out, SerializationContext context) throws IOException { + toDataPre_GEODE_1_14_0_0(out, context); + out.writeBoolean(enforceThreadsConnectSameReceiver); + } + + public void toDataPre_GEODE_1_14_0_0(DataOutput out, + SerializationContext context) throws IOException { super.toData(out, context); DataSerializer.writeString(Id, out); out.writeLong(startTime); @@ -684,7 +708,7 @@ public class GatewaySenderAdvisor extends DistributionAdvisor { @Immutable private static final KnownVersion[] serializationVersions = - new KnownVersion[] {KnownVersion.GFE_80}; + new KnownVersion[] {KnownVersion.GFE_80, KnownVersion.GEODE_1_14_0}; @Override public KnownVersion[] getSerializationVersions() { diff --git a/geode-wan/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderImpl.java b/geode-wan/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderImpl.java index 7c93836667..1b5206b532 100644 --- a/geode-wan/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderImpl.java +++ b/geode-wan/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderImpl.java @@ -230,6 +230,7 @@ public class SerialGatewaySenderImpl extends AbstractRemoteGatewaySender { pf.dispatcherThreads = getDispatcherThreads(); pf.orderPolicy = getOrderPolicy(); pf.serverLocation = this.getServerLocation(); + pf.enforceThreadsConnectSameReceiver = getEnforceThreadsConnectSameReceiver(); } @Override ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > New option for serial gw sender threads start when receivers share ip and port > ------------------------------------------------------------------------------ > > Key: GEODE-8202 > URL: https://issues.apache.org/jira/browse/GEODE-8202 > Project: Geode > Issue Type: Improvement > Reporter: Alberto Bustamante Reyes > Assignee: Alberto Bustamante Reyes > Priority: Major > Labels: pull-request-available > > RFC: > [https://cwiki.apache.org/confluence/display/GEODE/New+option+for+serial+gw+sender+dispatcher+threads+start|https://cwiki.apache.org/confluence/display/GEODE/New+option+for+serial+gw+sender+dispatcher+threads+start] -- This message was sent by Atlassian Jira (v8.3.4#803005)