Resource RODLFile not found in Remoting server using Hydra

Hi. We have a legacy application using Delphi 2010, SDK 6.0.61.1033, Hydra 3.0.51.881, built with runtime packages. The main exe is the RO server and loads several Hydra plugins. We need to make a small change and have upgraded it to SDK 10.0.0.1553 and Hydra 6.6.0.1301, still in Delphi 2010. We are now getting an error “Resource RODLFILE not found”. The RODLFILE.res is included in the Server exe. I have verified that the RODLFILE data is included in the exe. I have seen some other posts about this problem and have tried some of the fixes but have not been successful. Thanks for any help

Hi,

Are you using THYRODLReader component and have assigned it in ROServer.OnGetRODLReader event?

I can recommend to review these samples:

Hi Evgeny. Thanks for the quick response. We are using the SuperTCPServer and do not see that property. We are using Delphi 2010, RO SDK 10.0.0.1553 and Hydra 6.6.0.1301.

I was looking at the source from RO SDK 6.0.61.1033 which is the version we were previously using. In uROClient.pas, the procedure GetRodl(), there is a comment from Marc and this code:

begin
{ ToDo: investigate if we should maybe use hMainInstance instead? the current one
breaks with Packages, hMainInstance wouldn’t work with DLLs. Since packages
are currently not supported, i suggest we keep this the way it is? mh.

Alef: the following "IF" seems to nicely solve the problem... }

if Assigned(ARODLReader) then
ARODLReader.ReadRODLResource(aStream)
else begin
{$IFNDEF FPC}
if ModuleIsPackage = True then // prevent a warning in D2009
instance := MainInstance
else
{$ENDIF}
instance := hInstance;

rs := TResourceStream.Create(instance, res_RODLFile, RT_RCDATA);

Hi,

this is event, not property - ROSuperTcpServer.OnGetRODLReader. this event is declared on TROServer level so it present in all descendants.

can you review above samples, pls? at least one sample should use your scenario:

TROSuperTCPServer does not have the property OnGetRODLReader. TROTCPServer and TROServer have it defined. RO SKD v 10.0.0.1553.

I updated the TROSuperTCPServer class by adding ‘property OnGetRODLReader;’ under ‘published’. It seems to be working so far

Hi,

You are right. this event was in protected section. I’ve moved it to published section on TROServer level.

Great. Good to know I picked the right spot. Thanks for your help