bschuchardt commented on a change in pull request #6038:
URL: https://github.com/apache/geode/pull/6038#discussion_r577169369



##########
File path: 
geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteOperationMessage.java
##########
@@ -177,7 +179,28 @@ public void process(final ClusterDistributionManager dm) {
       sendReply(getSender(), this.processorId, dm, replyException, null, 0);
       return;
     }
-    dm.getExecutors().getWaitingThreadPool().execute(() -> 
doRemoteOperation(dm, cache));
+
+    String conserveSockets = getConserveSocketsSetting(dm);
+    if (conserveSockets != null && conserveSockets.equals("false")) {
+      // reply inline for CONSERVE_SOCKETS == false case.
+      doRemoteOperation(dm, cache);
+      return;
+    }
+
+    if (isTransactional()) {
+      dm.getExecutors().getWaitingThreadPool().execute(() -> 
doRemoteOperation(dm, cache));
+    } else {
+      // reply inline for non-transactional case.
+      doRemoteOperation(dm, cache);
+    }
+  }
+
+  String getConserveSocketsSetting(ClusterDistributionManager dm) {
+    return dm.getSystem().getProperties().getProperty(CONSERVE_SOCKETS);

Review comment:
       I think what you want to know here is whether the message is going to be 
sent on a thread-owned Socket or a shared Socket.  To determine that you need 
to use InternalDistributedSystem.threadOwnsResources(), not the 
conserve-sockets setting.




----------------------------------------------------------------
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:
[email protected]


Reply via email to