code: public void expiryAlarm(AORequestedTick requestedTick)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "expiryAlarm", requestedTick);
  
      boolean transitionOccured = false;
      ArrayList<AORequestedTick> satisfiedTicks = null;
      try
      {
        this.lock();
        try
        {
          // it is possible that this event occurs after this object is closed.
          // it is safe to ignore it since we must have already transitioned the requestedTick to its final state
          if (closed)
          {
            if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "expiryAlarm");
    
            return;
          }
    
          transitionOccured = cancelRequestInternal(requestedTick, true);
          
          // If we expired the request and have more then process those
          // requests now
          if (transitionOccured && !listOfRequests.isEmpty())
            satisfiedTicks = processQueuedMsgs(null);
        }
        finally
        {
          this.unlock();
        }
      }
      catch(SINotPossibleInCurrentConfigurationException e)
      {
        // No FFDC code needed
        notifyException(e);
      }
  
      if (transitionOccured)
      { // parent needs to be informed
        parent.expiredRequest(requestedTick.tick);
      }
      
      if (satisfiedTicks != null)
      {
        // inform parent about satisfied ticks - outside lock
        int length = satisfiedTicks.size();
        for (int i = 0; i < length; i++)
        {
          AORequestedTick aotick = (AORequestedTick) satisfiedTicks.get(i);
          long tick = aotick.tick;
          SIMPMessage m = aotick.getMessage();
          parent.satisfiedRequest(tick, m);
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "expiryAlarm");
  
    }
docs: Callback from the AORequestedTick when the expiry alarm occurs.
  @param requestedTick