code: final SITransaction getCurrentTransaction(
                                                final ConnectionManager connectionManager) throws ResourceException {
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr
                              .entry(this, TRACE, "getCurrentTransaction",
                                     connectionManager);
          }
  
          // Are we already active in a transaction?
          SITransaction currentTransaction = getActiveTransaction();
  
          if ((currentTransaction == null)
              && (connectionManager instanceof LazyEnlistableConnectionManager)) {
  
              // We are not active in a transaction but the connection manager
              // supports lazy enlistment so there may be a current transaction
              // that we don't know about yet
  
              if (TraceComponent.isAnyTracingEnabled() && TRACE.isDebugEnabled()) {
                  SibTr.debug(this, TRACE,
                              "Lazy enlisting on the connection manager");
              }
  
              try {
  
                  ((LazyEnlistableConnectionManager) connectionManager)
                                  .lazyEnlist(this);
  
              } catch (final ResourceException exception) {
  
                  FFDCFilter.processException(exception, CLASS_NAME
                                                         + "getCurrentTransaction", "1:837:1.91", this);
                  SibTr.error(TRACE, "EXCEPTION_RECEIVED_CWSJR1102", exception);
                  throw exception;
  
              }
  
              // Are we active in a transaction now?
              currentTransaction = getActiveTransaction();
  
          }
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.exit(this, TRACE, "getCurrentTransaction", currentTransaction);
          }
          return currentTransaction;
  
      }
docs: Returns the current global or container local transaction, if any, for
  this managed connection. If there is currently no transaction associated
  with this managed connection, calls <code>lazyEnlist</code> to ensure
  that one has not been started.
  
  @param connectionManager
  the connection manager for the handle requesting the
  transaction
  @return the current transaction
  @throws ResourceException
  if a lazy enlist fails