@Override
      public Object call() {
        final TXManagerImpl txmgr = getGemfireCache().getTxManager();
        try {
          GeodeAwaitility.await().untilAsserted(() -> {
            Set states = txmgr.getTransactionsForClient((InternalDistributedMember) myId);
            getLogWriter()
                .info("found " + states.size() + " tx states for " + myId);
            assertThat(states).as("Waiting for transaction state to expire").isEmpty();
          });
          return null;
        } finally {
          getGemfireCache().getDistributedSystem().disconnect();
        }
      }
Tests the basic client-server transaction functionality
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionDUnitTest.java