@Test
  public void testBug43353() {
    Host host = Host.getHost(0);
    VM vm1 = host.getVM(0);
    VM vm2 = host.getVM(1);

    SerializableCallable createRegion = new SerializableCallable() {
      @Override
      public Object call() throws Exception {
        getCache().createRegionFactory(RegionShortcut.REPLICATE).create(getTestMethodName());
        return null;
      }
    };

    vm1.invoke(createRegion);
    vm2.invoke(createRegion);

    vm1.invoke(new SerializableCallable() {
      @Override
      public Object call() throws Exception {
        Region r = getCache().getRegion(getTestMethodName());
        r.put("ikey", "value");
        getCache().getCacheTransactionManager().begin();
        r.put("key1", new byte[20]);
        r.invalidate("ikey");
        getCache().getCacheTransactionManager().commit();
        return null;
      }
    });

    vm2.invoke(new SerializableCallable() {
      @Override
      public Object call() throws Exception {
        Region r = getCache().getRegion(getTestMethodName());
        Object v = r.get("key1");
        assertNotNull(v);
        assertTrue(v instanceof byte[]);
        assertNull(r.get("ikey"));
        return null;
      }
    });
  }
verify that queries on indexes work with transaction
geode-core/src/distributedTest/java/org/apache/geode/cache30/TXOrderDUnitTest.java