The IROTransportChannel interface is part of the Remoting SDK implementation of |Remote procedure calls. In the Remoting SDK Architecture, it is a way to implement Smart Services.

The Behind the Scenes - Client Side Message Flow article describes a place of the IROTransportChannel interface in a messages' process line.

The TROTransportChannel class implements an IROTransportChannel interface so each of the Remoting SDK for Delphi's channel conforms it.


Required Methods


Allows an implimentation to do necessary preparatory actions (checking the readiness of the channel, restore session data, etc.).

procedure BeforeDispatch(aMessage: IROMessage)


Dispatch (IROMessage)  overload

Sends a request message through the Self channel for processing and gets back an aMessage. CodeGen uses this method when generating a proxy from RODL Files.

procedure Dispatch(aMessage: IROMessage)


  • aMessage: (In/out) message data

Dispatch (TStream, TStream)  overload

Sends aRequest through the Self channel for processing and gets back an aResponse.

procedure Dispatch(aRequest: TStream; aResponse: TStream)


  • aRequest: (In) request data
  • aResponse: (Out) result

GetTransportObject    (declared in IROTransport)

Returns an underlying Delphi TObject, which performs the actual data transferring.

function GetTransportObject: TObject


Checks the availability of the Self channel. This method is intended to provide fail-over and load balancing support in the Remoting SDK Architecture. For example, the TROTransportChannel class uses it for checking the accessibility of servers from the TROTransportChannel.

function Probe(aServerLocator: TROServerLocator): Boolean


  • aServerLocator: Configuration data of a server


Checks the availability of all known servers.

procedure ProbeAll


Retrieves the location details of a server from aServerLocator.

procedure SetServerLocator(aServerLocator: TROServerLocator; anException: Exception)


  • aServerLocator: Configuration data of the server
  • anException: Exception