At design time I got no problem to connect to a relativity server via https://inv…com/bin, recieving design time data etc.
At runtime first I got a EIdOSSLCouldNotLoadSSLLibrary exception (“could not load ssl lib”) and after I put libeasy32.dll and ssleay.dll in the same exe dir I got a SessionNotFoundException (“Session could not be found”).
To connect I only use a TDARemoteDataAdapter and and set wired TDAMemDataTable.Active := True.
What do I have to do to get it working? What’s the difference between design time and runtime setup and how I get rid of this ssl thing?
SessionNotFoundException exception is our exception that means that you have successfully connected to server via https:// .
as a workaround, you should perform login to Relativity server.
Have you used our DAD wizard?
if yes, it already performs login in ClientChannel_OnLoginNeeded event if SessionNotFoundException was raised on server so you can ignore this exception.
I see there is more than one problem for me in this thread. Already found that SessionNotFoundExceptionis apearing only once.
No I don’t use your DAD wizard as I switch a given app from local db to relativity. There is no interactive login. I only provide credentials as TDARemoteDataAdapter.LoginString. How to provide a “login to Relativity server” to avoid SessionNotFoundException (BTW, it is happened via plain http://, too)?
If I use a https:// connection I got a runtime error (missing ssl lib). How do I avoid providing ssl dll? If I connect to relativity server (https:/…/bin) in browser it seemed I got xml data without any ssl lib.
My requirements are very basic. I only search for a good aproach for wiring all the things up and running.
By default, Indy components are used for https:// connection. they require libeasy32.dll and ssleay.dll libraries.
Your browser may use own ssl libraries.
You can use WinInet channel. in this case, SSL libraries aren’t required, but you have to use “full” version components:
TROBinMessage
TROWinInetHTTPChannel
TRORemoteService
and code:
// lChannel : TROWinInetHTTPChannel
lChannel.TargetURL := 'http://localhost:7099/bin';
// lMessage : TROBinMessage
// lRemoteService : TRORemoteService
lRemoteService.Channel := lChannel;
lRemoteService.Message := lMessage;
lRemoteService.ServiceName := 'DataService';
if (TBaseLoginService_Proxy.Create('LoginService', lMessage, lChannel) as IBaseLoginService).LoginEx(UTF8Encode('User Id="simple";Password="simple";Domain="DASamples";Schema="Simple"')) then begin
Log('Login has been successfull. Going further...');
end
else begin
Log('Unsuccessful login. Please check your login and password. Exiting...');
Exit;
end;
RemoteDataAdapter.RemoteService := lRemoteService;
Table.RemoteDataAdapter := RemoteDataAdapter;
Table.Open;