code: @Override
      public void pause() throws PauseableComponentControllerRequestFailedException {
  
          Tr.info(tc, "info.server.pause.all.request.received");
  
          Set<String> failed = new HashSet<String>();
  
          if (tracker.getTracked().isEmpty()) {
              Tr.warning(tc, "warning.server.pause.no.targets");
              throw new PauseableComponentControllerRequestFailedException(Tr.formatMessage(tc, "warning.server.pause.no.targets"));
          }
  
          //Add each pauseable component to this list. If the tracked values get modified
          //while we are iterating and we start over, skip anyone already in this list
          Set<PauseableComponent> processedList = new HashSet<PauseableComponent>();
  
          // Sync with other methods changing/querying states for PauseableComponents
          synchronized (this) {
              while (true) {
                  try {
                      for (PauseableComponent pauseableComponent : tracker.getTracked().values()) {
  
                          if (processedList.add(pauseableComponent)) {
                              try {
                                  pauseableComponent.pause();
                              } catch (Throwable t) {
                                  // Catch anything and mark a failed Add it to the failed list.
                                  failed.add(pauseableComponent.getName());
                              }
                          }
                      }
  
                      break;
                  } catch (Throwable t) {
                      // Someone modified our list of services. Retry.
                  }
              }
          }
  
          //Check if we had any failures and throw an exception back with a list of failed pauseable components.
          if (!failed.isEmpty()) {
  
              Tr.error(tc, "error.server.pause.failed", Arrays.toString(failed.toArray()));
  
              throw new PauseableComponentControllerRequestFailedException(Tr.formatMessage(tc, "error.server.pause.failed", Arrays.toString(failed.toArray())));
  
          } else {
  
              Tr.info(tc, "info.server.pause.request.completed");
          }
  
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.ws.kernel.launch.service.PauseableComponentController#pause()