NamoRamana
-
Content Count
28 -
Joined
-
Last visited
Posts posted by NamoRamana
-
-
-
Newbie here.. We have a lot of COM+ server components ( > 30 COM dlls developed in Delphi 2006) in the present system. We are evaluating to convert them in Delphi Rio based some REST server, preferably keeping the endpoint signatures the same (to make minimum changes in a huge delphi client application). It will be a huge undertaking, apart from unicode etc related conversion (64-bit conversion will be the next step; after successful 32bit upgrade). I was wondering if MARS can ease this server migration?
- in MARS, can I install multiple resources under the same server ? Idea here is that, each com server dll will act as own resource and its public methods will be the endpoints. For the better code management, is it possible to keep each resource code in its separate delphi project? how complex will be the installation of the REST server and these multiple resources, if we host them in IIS?
- in current COM servers, Many of the method calls make heavy use of OleVarients as input and output paramas. Is there anything in MARS/REST that can keep those method signature same ?
- in current COM env, we see some heavily used components slow down the end-user response a lot (sometimes, we have to reboot the host server). Do you think, MARS based REST service can handle a lots requests to a resource(I don't have request numbers)?
Sorry for the lot of heavy questions. Your response/strategy/recommendation to tackle this upgrade will be helpful.
Thank you :).
Delphi 10.3.2 - IdObjs not found
in Indy
Posted
Trying to recompile old code in Delphi 10.3.2 and getting error: 'IdObjs not found'. Also code insight shows red line under TIdThreadList. Does Delphi Rio (10.3.2) missing any indy libraries? Any indy libraries merged/renamed in later delphi versions?
interface uses IdContext, Classes, SysUtils, IdCustomTCPServer, StreamUtils, IdTCPConnection, IdYarn, IdObjs, IdComponent; type TRequestType = (rtNone, rtGetFileList, rtGetFile, rtGetMasterHash, rtDisconnect); TResponseType = (rstNone, rstFile, rstString, rstStringList); TGetMasterHash = procedure (var AHash : string) of object; TGetFileList = procedure (var AFileList : TStrings) of object; TGetFile = procedure (const AFilename : string; var AStream : TStream) of object; TBytesSent = procedure (AByteCount : integer) of object; TSyncContext = class(TIdContext) private FOnGetMasterHash: TGetMasterHash; FOnGetFileList: TGetFileList; FOnGetFile: TGetFile; FOnBytesSent: TBytesSent; FBytesSentTotal : integer; protected procedure WriteResponseHeader(AResponseType : TResponseType; ASize : Int64); function ReadRequestHeader : TRequestType; procedure DoGetMasterHash; virtual; procedure DoGetFileList; virtual; procedure DoGetFile(const AFilename : string); virtual; procedure DoBytesSent(AByteCount : integer); virtual; procedure DoWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer); procedure DoWorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer); public constructor Create(AConnection: TIdTCPConnection; AYarn: TIdYarn; AList: TIdThreadList = nil); override;