code: protected Timer createNonPersistentExpirationTimer(BeanO beanO, Date expiration, long interval, Serializable info) {
  
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled();
          if (isTraceOn && tc.isDebugEnabled())
              Tr.entry(tc, "createNonPersistentExpirationTimer : " + beanO);
  
          if (beanO.getHome().getBeanMetaData().isEntityBean()) {
              IllegalStateException ise = new IllegalStateException("Timer Service: Entity beans cannot use non-persistent timers : " + beanO.getId().getJ2EEName());
  
              if (isTraceOn && tc.isEntryEnabled())
                  Tr.exit(tc, "createNonPersistentExpirationTimer : " + ise);
              throw ise;
          }
  
          // create the non-persistent Timer
          TimerNpImpl timer = new TimerNpImpl(beanO.getId(), expiration, interval, info);
  
          // queue timer to start (or start immediately if not in a global tran)
          queueOrStartNpTimer(beanO, timer);
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "createNonPersistentExpirationTimer : " + timer);
          return timer;
      }
docs: Creates a non-persistent expiration based (single action or interval) EJB timer.
  
  @param beanO the bean for which the timer is being created
  @param expiration the initial expiration for a interval-based timer
  @param interval the interval for an interval-based timer, or -1 for a single-action timer
  @param info application information to be delivered to the timeout method, or null