docs: @Override
      public final synchronized void activate(BeanId id, ContainerTx tx) // d139352-2
                      throws RemoteException {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled()) // d144064
              Tr.entry(tc, "activate: " + this);
  
          long pmiCookie = -1;//lidb1117.4 d177661.1
  
          // This method is only valid for newly created beanOs, that were
          // created for the purpose of activating.                          d159152
          assertState(ACTIVATING);
  
          if (pmiBean != null) {
              pmiCookie = pmiBean.activationTime();//lidb1117.4
          }
  
          String lifeCycle = null; // d367572.7
  
          BeanMetaData bmd = home.beanMetaData; // d399469
          CallbackContextHelper contextHelper = null;
          try {
              // passivator needs to be called regardless of the callback kind, as
              // this is what restores the bean from the passivation file.    d427338
              passivator.activate(this, bmd); // d648122
  
              if (ivCallbackKind != CallbackKind.None) {
                  contextHelper = new CallbackContextHelper(this); // d630940
                  beginLifecycleCallback(LifecycleInterceptorWrapper.MID_POST_ACTIVATE,
                                         contextHelper, CallbackContextHelper.Contexts.CallbackBean);
  
                  if (isTraceOn && tc.isDebugEnabled()) //d468174
                  {
                      Tr.debug(tc, "extended persistence context bindID = " + ivExPcContext);
                  }
  
                  // d367572.1 start
                  // Invoke the PostActivate callback if any needs to be called.
                  if (ivCallbackKind == CallbackKind.SessionBean) {
                      if (isTraceOn && // d527372
                          TEBeanLifeCycleInfo.isTraceEnabled()) // d367572.7
                      {
                          lifeCycle = "ejbActivate";
                          TEBeanLifeCycleInfo.traceEJBCallEntry(lifeCycle); // d161864
                      }
  
                      sessionBean.ejbActivate();
                  } else if (ivCallbackKind == CallbackKind.InvocationContext) {
                      // Invoke the PostActivate interceptor methods.
                      InterceptorMetaData imd = bmd.ivInterceptorMetaData;
                      InterceptorProxy[] proxies = imd.ivPostActivateInterceptors;
                      if (proxies != null) {
                          if (isTraceOn && // d527372
                              TEBeanLifeCycleInfo.isTraceEnabled()) // d367572.7
                          {
                              lifeCycle = "PostActivate";
                              TEBeanLifeCycleInfo.traceEJBCallEntry(lifeCycle);
                          }
  
                          InvocationContextImpl<?> inv = getInvocationContext();
                          inv.doLifeCycle(proxies, bmd._moduleMetaData); //d450431, F743-14982
                      }
                  } // d367572.1 end
              }
          } finally {
              if (lifeCycle != null) // d367572.7
              {
                  TEBeanLifeCycleInfo.traceEJBCallExit(lifeCycle); // d367572.7
              }
  
              if (contextHelper != null) {
                  contextHelper.complete(true);
              }
  
              if (pmiBean != null) {
                  pmiBean.activationTime(pmiCookie);//lidb1117.4
              }
          }
  
          if (isZOS) {
              createServantRoutingAffinity(); // d646413.2
          }
  
          setState(ACTIVATING, METHOD_READY);
  
          ivTimeoutElement.passivated = false; // F61004.5
  
          if (isTraceOn && tc.isEntryEnabled()) // d144064
              Tr.exit(tc, "activate: " + getStateName(state));
      }