code: public void send(final SIBusMessage msg, final SITransaction tran)
              throws SISessionDroppedException, SIConnectionDroppedException,
              SISessionUnavailableException, SIConnectionUnavailableException,
              SIConnectionLostException, SILimitExceededException,
              SINotAuthorizedException, SIResourceException, SIErrorException,
              SIIncorrectCallException,
              SINotPossibleInCurrentConfigurationException {
  
          checkValid();
  
          _delegate.send(msg, _parentConnection.mapTransaction(tran));
  
      }
docs: Sends a message. Checks that the session is valid. Maps the transaction
  parameter before delegating.
  
  @param msg
  the message to send
  @param tran
  the transaction to send the message under
  @throws SIConnectionUnavailableException
  if the connection is not valid
  @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 SINotAuthorizedException
  if the delegation fails
  @throws SILimitExceededException
  if the delegation fails
  @throws SIConnectionLostException
  if the delegation fails
  @throws SISessionUnavailableException
  if the delegation fails
  @throws SIConnectionDroppedException
  if the delegation fails
  @throws SISessionDroppedException
  if the delegation fails