code: private SITransaction getContainerTransaction() throws SIResourceException {
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, "getContainerTransaction");
          }
  
          final SITransaction containerTransaction;
  
          try {
  
              // Ensure the connection is associate with a managed connection
              final SibRaManagedConnection managedConnection = getAssociatedManagedConnection();
  
              // Obtain the current container transaction from the managed
              // connection. The connection manager is required to perform lazy
              // enlistment.
              containerTransaction = managedConnection
                              .getContainerTransaction(_connectionFactory
                                              .getConnectionManager());
  
          } catch (ResourceException exception) {
              // No FFDC code needed
  
              if (TraceComponent.isAnyTracingEnabled() && TRACE.isEventEnabled()) {
                  SibTr.exception(this, TRACE, exception);
              }
              throw new SIResourceException(NLS.getFormattedMessage(
                                                                    "CONTAINER_TRAN_CWSIV0157", new Object[] { exception },
                                                                    null), exception);
  
          }
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.exit(this, TRACE, "getContainerTransaction",
                         containerTransaction);
          }
          return containerTransaction;
  
      }
docs: Returns the current container transaction, if any.
  
  @return the current container transaction
  @throws SIResourceException
  if lazy association or lazy enlistment fails