code: public SICoreConnection createConnection(final Subject subject,
              final Map connectionProperties) throws SIResourceException,
              SINotPossibleInCurrentConfigurationException,
              SIIncorrectCallException, SIAuthenticationException {
  
          if (TRACE.isEntryEnabled()) {
              SibTr
                      .entry(this, TRACE, "createConnection", new Object[] {
                              SibRaUtils.subjectToString(subject),
                              connectionProperties });
          }
  
          final ConnectionRequestInfo connectionRequestInfo = new SibRaConnectionRequestInfo(
                  subject, connectionProperties);
          final SibRaConnection result = createConnection(connectionRequestInfo);
  
          if (TRACE.isEntryEnabled()) {
              SibTr.exit(this, TRACE, "createConnection", result);
          }
          return result;
  
      }
docs: Creates a connection to a messaging engine. The creation is delegated to
  the JCA connection manager. This either creates a new managed connection
  or finds an existing one that matches this request. The connection
  manager obtains a connection handle to the managed connection which is
  what is returned by this method.
  
  @param subject
  the subject to authenticate to the messaging engine with
  @param connectionProperties
  the connection properties that identify the messaging engine
  to connect to
  @throws SIResourceException
  if an exception relating to the JCA processing occurs
  @throws SIAuthenticationException
  if an exception occurs when delegating to the underlying core
  SPI implementation
  @throws SIIncorrectCallException
  if an exception occurs when delegating to the underlying core
  SPI implementation
  @throws SINotPossibleInCurrentConfigurationException
  if an exception occurs when delegating to the underlying core
  SPI implementation