code: protected static void configureTransactionManager(final Context _compCtx,
                                                        final String _classTM)
          throws StartupException
      {
          try {
              final Object tm = Class.forName(_classTM).newInstance();
              if (tm == null) {
                  throw new StartupException("could not initialise TransactionManager ");
              } else {
                  if (tm instanceof TransactionManager) {
                      Util.bind(_compCtx, "env/" + INamingBinds.RESOURCE_TRANSMANAG, tm);
                      Util.bind(_compCtx, "env/" + INamingBinds.RESOURCE_USERTRANSACTION,
                                      new DelegatingUserTransaction((TransactionManager) tm));
                  } else {
                      throw new StartupException("could not initialise TransactionManager with object:" + tm);
                  }
              }
          } catch (final ClassNotFoundException e) {
              throw new StartupException("could not find transaction manager class '" + _classTM + "'", e);
          } catch (final InstantiationException e) {
              throw new StartupException("could not initialise transaction manager class '" + _classTM + "'", e);
          } catch (final IllegalAccessException e) {
              throw new StartupException("could not access transaction manager class '" + _classTM + "'", e);
          } catch (final NamingException e) {
              throw new StartupException("could not bind transaction manager class '" + _classTM + "'", e);
          }
      }
docs: The class defined with parameter _classTM initialized and bind to {@link #RESOURCE_TRANSMANAG}. The initialized
  class must implement interface {@link TransactionManager}.
  
  @param _compCtx Java root naming context
  @param _classTM class name of the transaction manager
  @throws StartupException if the transaction manager class could not be found, initialized, accessed or bind to
  the context