code: protected void checkLPSEnablement() {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "checkLPSEnablement");
  
          // If this is in a tran enabled for LPS via beginLPSEnabledTx return without
          // checking for LPS enablement
          if (_LPSEnabledTx) {
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "checkLPSEnablement - LPSEnabledTx");
              return;
          }
  
          final boolean debug = tc.isDebugEnabled();
  
          // If we are not debugging and LPS is disabled, return immediately.
          if (!debug) {
              if (_LPSProhibited) {
                  if (tc.isEntryEnabled())
                      Tr.exit(tc, "checkLPSEnablement");
                  return;
              }
          }
  
          final boolean isLPSEnabled = _transaction._configProvider.getRuntimeMetaDataProvider().isHeuristicHazardAccepted();
  
          if (debug)
              Tr.debug(tc, "LPSEnabled", isLPSEnabled);
  
          // If this application does not allow the LPS function then ensure that we record
          // this fact. This flag will remain false until the first application that does
          // not allow LPS drives an enlist. At this point it will be set to true and is
          // not changed back to false.
          if (!isLPSEnabled) {
              _LPSProhibited = true;
          }
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "checkLPSEnablement : LPSEnabled=" + isLPSEnabled + " LPSProhibited=" + _LPSProhibited);
      }
docs: Determine if LPS is enabled for this enlist (ie this application) and
  update the overall transaction LPS availability. The class instance
  variable _LPSProhibited which defines the overall LPS availability is
  set to true as soon as possible to avoid further MetaData lookups unless
  debug trace is enabled.