code: private SITransaction getCurrentTransaction() {
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, "getCurrentTransaction");
          }
  
          SITransaction currentTransaction = null;
  
          // Is there a current local transaction?
  
          if (_localTransaction != null) {
  
              currentTransaction = _localTransaction.getCurrentTransaction();
  
          }
  
          // If not, is there a current global transaction?
  
          if ((currentTransaction == null) && (_xaResource != null)) {
  
              currentTransaction = _xaResource.getCurrentTransaction();
  
          }
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr
                      .exit(this, TRACE, "getCurrentTransaction",
                              currentTransaction);
          }
          return currentTransaction;
  
      }
docs: Returns the current transaction associated with this managed connection.
  If the connection manager supports lazy enlistment then this may not
  represent the current transaction on the thread.
  
  @return the current transaction