code: public BeanO preInvokeActivateBean(EJBThreadData threadData, ContainerTx tx, BeanId beanId) // d641259
      throws RemoteException
      {
          return beanId.getActivationStrategy().atActivate(threadData, tx, beanId);
      }
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>
  
  If this method returns successfully, {@link EJBThreadData#pushCallbackBeanO} will have been called, and
  the caller is responsible for calling {@link EJBThreadData#popCallbackBeanO}. <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.