We’re using RO sdk for Delphi for quite a while and have some servers aging more than 10 years.
So far we were only creating TCP servers with binary messages.
I’ve just noticed that the rodlfile.res that we link with is out of date. and doesn’t really include specification of the the up to date services we actually use.
I have 2 questions:

  1. It seems it didn’t have any negative affect on our services. Is it really so?
  2. I’ve just tried writing an HTTP server on top of one of the existing services and it seems that in HTTP APIs it’s actually very important that the file would be up to date, as the THTTPAPIDispatcher actually reads the rodlfile.res and generates the paths based on the data defined in the rodlfile. Is it possible to generate the Delphi files (intf/invk/impl) in a way that would include the http api library without needing to read the rodlres.file in runtime?

Thans in advance,


(EvgenyK) #2


this RES is used in run-time for generation of RODL for clients and for reading RODL by HTTP API.
You can rename/backup this .RES. it should be recreated from scratch if correct .RODL is defined in .dpr.

If you want to move from RODL-based servers to Code-First one, pls read Code-First Servers and Converting a Delphi Server to Code-First articles. We have special wizard that will perform some conversion work for you.

by other hand, you can create empty _impl files with ServiceBuilder with CodeFirst compatible option and move your code into that file:

Note: minimal supported version of Delphi is Delphi XE3 for Code-First servers.

We have almost all ROD samples with Code-First version so you can compare them if you have some q, like how to use events sinks (usage of them a bit differ from RODL-based version).


Thanks Evgeny,
For now we use XE2 so we’ll have to wait with the codefirst servers.

(EvgenyK) #4


Have you generated valid RODLFILE.res?


Yes, and it detected my service just fine.
I was asking this question because during the testing of the HTTP server i’ve noticed my RODLFILE.res was out dated and wondered if it has any affect on the existing TCP server that was generated from the source rodl file. I believe it has no affect, but just wanted to be sure.