code: public BeanO activateBean(EJBThreadData threadData, ContainerTx tx, BeanId beanId)
                      throws RemoteException
      {
          BeanO beanO = null;
  
          try
          {
              beanO = beanId.getActivationStrategy().atActivate(threadData, tx, beanId); // d630940
          } finally
          {
              if (beanO != null)
              {
                  threadData.popCallbackBeanO();
              }
          }
  
          return beanO;
      }
docs: Activate a bean in the context of a transaction. If an instance of the
  bean is already active in the transaction, that instance is returned.
  Otherwise, one of several strategies is used to activate an instance
  depending on what the bean supports. <p>
  
  If this method completes normally, it must be balanced with a call to
  one of the following methods: removeBean, commitBean, rollbackBean.
  If this method throws an exception, any partial work has already been
  undone, and there should be no balancing method call. <p>
  
  This method should never be used to obtain bean instances for method
  invocations. See {@link #preInvokeActivateBean}. <p>
  
  @param threadData the EJB thread data for the currently executing thread
  @param tx the transaction context in which the bean instance should
  be activated.
  @param beanId the <code>BeanId</code> identifying the bean to
  activate.
  
  @return a fully-activated bean instance.