code: public void run()
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(tc, "run");
  
          UniqueKeyGenerator generator = null;
  
          while (_running)
          {
              synchronized (_asyncQ)
              {
                  // Do we have anything to do? 
                  while (_asyncQ.isEmpty())
                  {
                      // If not we need to wait until told
                      // that we do.
                      try
                      {       
                          _asyncQ.wait();
                      }
                      catch (InterruptedException ie)
                      {
                          // No FFDC Code Needed.
                      }
  
                      // If we have been woken up because we are 
                      // stopping then we can simply return here
                      if (!_running)
                      {
                          return;
                      }
                  }
  
                  generator = (UniqueKeyGenerator)_asyncQ.removeFirst();
              }
  
              // Carry out the requested updates.
              try
              {
                  updateEntry(generator);
              }
              catch (PersistenceException pe)
              {
                  com.ibm.ws.ffdc.FFDCFilter.processException(pe, "com.ibm.ws.sib.msgstore.persistence.objectManager.UniqueKeyRangeManager.run", "1:366:1.8", this);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.event(tc, "Exception caught asynchronously increasing range of unique key generator!", pe);
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "run");
      }
docs: This method is where the asynchronous reads and writes are done
  to the filesystem for persistent updates to the currently active
  range of keys.