docs: public void afterCompletion(int status)
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled()) // d144064
              Tr.entry(tc, "afterCompletion (" + status + ") : " + this);
  
          try
          {
              // inform the activator that the session has ended
              // so the beans can be passivated if necessary
              BeanO[] beanOs = getBeanOs();
              EJBKey[] ejbKeys = getEJBKeys(beanOs);
              if (beanOs != null) {
                  for (int i = 0; i < beanOs.length; ++i) {
                      BeanO beanO = beanOs[i];
                      try {
                          ivContainer.activator.unitOfWorkEnd(this, beanO);
                      } catch (Throwable ex) {
                          FFDCFilter.processException(ex, CLASS_NAME + ".afterCompletion",
                                                      "214", this);
                          if (isTraceOn && tc.isEventEnabled()) // d144064
                              Tr.event(tc,
                                       "Exception thrown in afterCompletion()",
                                       new Object[] { beanO, ex });
                      }
                  }
              }
              // inform the unit of controller the session has ended
              // so references that are no longer needed can be released
              ivContainer.uowCtrl.sessionEnded(ejbKeys);
  
              //d425046 Ensure ContainerAS not available now
              ContainerTx tx = ivContainer.getCurrentTx(false);
              if (tx != null)
              {
                  tx.setContainerAS(null); // prevent activation strategy finding
                  if (isTraceOn && tc.isDebugEnabled())
                      Tr.debug(tc, "removed ContainerAS during afterCompletion");
              }
  
          } catch (Throwable t) {
              FFDCFilter.processException(t, CLASS_NAME + ".afterCompletion", "219", this);
              if (isTraceOn && tc.isEventEnabled()) // d144064
                  Tr.event(tc, "Exception during afterCompletion", t);
              throw new RuntimeException(t.toString());
          } finally {
              ivContainer.containerASCompleted(ivASKey);
          }
  
          if (isTraceOn && tc.isEntryEnabled()) // d144064
              Tr.exit(tc, "afterCompletion");
      }