code: @Override
      public void send(final SIBusMessage msg, final SITransaction tran,
                       final SIDestinationAddress destAddr,
                       final DestinationType destType,
                       final OrderingContext orderingContext, final String alternateUser)
                      throws SIConnectionDroppedException,
                      SIConnectionUnavailableException, SIConnectionLostException,
                      SILimitExceededException, SINotAuthorizedException,
                      SITemporaryDestinationNotFoundException, SIResourceException,
                      SIErrorException, SIIncorrectCallException,
                      SINotPossibleInCurrentConfigurationException {
  
          checkValid();
  
          _delegateConnection.send(msg, mapTransaction(tran), destAddr, destType,
                                   orderingContext, alternateUser);
  
      }
docs: Sends a message. Checks that the connection is valid. Maps the
  transaction parameter before delegating.
  
  @param msg
  the message to send
  @param tran
  the transaction to send the message under
  @param destAddr
  the destination to send the message to
  @param destType
  the type of the destination
  @param orderingContext
  indicates that the order of messages from multiple
  ProducerSessions should be preserved
  @param alternateUser
  the name of the user under whose authority the send should be
  performed (may be null)
  @throws SINotPossibleInCurrentConfigurationException
  if the delegation fails
  @throws SIIncorrectCallException
  if the transaction parameter is not valid given the current
  application and container transactions
  @throws SIErrorException
  if the delegation fails
  @throws SIResourceException
  if the current container transaction cannot be determined
  @throws SITemporaryDestinationNotFoundException
  if the delegation fails
  @throws SINotAuthorizedException
  if the delegation fails
  @throws SILimitExceededException
  if the delegation fails
  @throws SIConnectionLostException
  if the delegation fails
  @throws SIConnectionUnavailableException
  if the connection is not valid
  @throws SIConnectionDroppedException
  if the delegation fails