Problem on Stop and Start SuperTCPServer


(Fábio Uberti) #1

Hi!

In my application server i have the TROSuperTCPServer, if stop (deactive) and start (Active) the SuperTCPServer my client application don’t connect, show message : An exception was raised on the server: Session {XXXX} could not be found..

If i close server application and open it’s OK and works.

What is a problem ? exists a configuration ?


(EvgenyK) #2

Hi,
can you create a simple testcase that reproduce this behavior, pls?

usually this exception should be handled automatically in Channel.OnLoginNeeded event, like

procedure TClientDataModule.ClientChannelLoginNeeded(
  Sender: TROTransportChannel; anException: Exception; var aRetry: Boolean);
begin
  aRetry := (TBaseLoginService_Proxy.Create('LoginService', Message, ClientChannel) as IBaseLoginService).LoginEx(RelativityConnectionString);
end;

(Fábio Uberti) #3

EvgnyK, after stop and start SuperTCPServer the SessionManager don’t reconize new sessions created by ServiceLogin. It’s possible restart SessionManager with SuperTCPServer ?

The testcase not is possible this moment.


(EvgenyK) #4

what platform (Windows/OSX/Linux/etc) is used for server-side?
what session manager is used?


(Fábio Uberti) #5

My plataform is Windows.
I use TROInMemorySessionManager.


(EvgenyK) #6

I can’t reproduce this issue with simple testcase
I’ve used SuperTCP Channel Chat sample.
just drop button to form and add

procedure TSuperTCPChannelChat_ServerMainForm.Button1Click(Sender: TObject);
begin
 ROServer.Active := not  ROServer.Active;
 Caption := 'server.active is '+BoolToStr(ROServer.Active, True);
end;

after pressing to button twice, send message from client, it will show error similar to your one, click logoff and logon an it works again as expected, so I think, this situation isn’t handled correctly in your client


(Fábio Uberti) #7

I reproduce error in sample, as you mentioned in the previous review.


(EvgenyK) #8

do additional actions:

  • click logoff
  • click logon
  • send message

everything will work as before


(Fábio Uberti) #9

Your solution does not apply to me.

On my application server that was migrated from DataSnap to RemObject, we had this feature of restarting the application server without needing to close the application. But with RemObjects it looks like this is not possible. This way we have chosen to remove this functionality from the application server.

Thank you.


(EvgenyK) #10

can you create a simple testcase, pls?
I’ll update it and it will work w/o any problem