@Override
  public void addRemoteEnum(int id, EnumInfo enumInfo) {
    verifyConfiguration();
    TXStateProxy currentState = suspendTX();
    EnumId enumId = new EnumId(id);
    Region<Object, Object> r = getIdToType();
    try {
      if (!r.containsKey(enumId)) {
        // This enum could actually be for this distributed system,
        // so we need to make sure the enum is published while holding
        // the distributed lock.
        lock();
        try {
          r.put(enumId, enumInfo);
        } finally {
          unlock();
        }
      }
    } finally {
      resumeTX(currentState);
    }
  }
Should only be called holding the dlock
This method iterates through the entire PdxTypes region and syncs the reverse map with the pdx
region This is an expensive operation and should only be called during initialization. A cache
listener is used to keep the reverse maps up to date.
geode-core/src/main/java/org/apache/geode/pdx/internal/PeerTypeRegistration.java