Page 1 of 1

Possible to have 8 thousand SSHShell connection at the same time?

Posted: Mon 28 Jul 2014 05:58
by applespring
Hello

I just have a question, for constant and real-time monitoring about more than 8 thousand destination servers (all have different IP) through SSHShell connection, by which we can get the text message whenever there are alarm happening.

I have tried with SecureBridge v5.5.1/Delphi Xe2/Win7 64 professional, but it seems that for several SSH connections, this structure works fine, but if I have more than, let's say 1000 connection, then the OnAsynReceiveEvent was not fired.

Any recommendation on how to setup in this massive connection quantity case?

Re: Possible to have 8 thousand SSHShell connection at the same time?

Posted: Wed 30 Jul 2014 03:13
by applespring
As a workaround, I have set NonBlocking to False, and use a timer, each 1 minute make a loop to each SSHShell component to make a ReadString call, and if the result is not empty, then display them.

But since use the NonBlocking mode, in case of "alarm-storm" then it is not a good solution, while for reaction to these alarm is also blocking.

Is OnAsynReceiveEvent is driven by thread or not?

Re: Possible to have 8 thousand SSHShell connection at the same time?

Posted: Thu 07 Aug 2014 11:23
by ViktorV
To solve the problem try to increase the TScSSHClient.Timeout and TScSSHShell.Timeout properties, e.g. to 120 second.

Re: Possible to have 8 thousand SSHShell connection at the same time?

Posted: Thu 07 Aug 2014 11:26
by ViktorV
The OnAsynReceiveEvent event is raised only when TScSSHShell.NonBlocking is True.

Re: Possible to have 8 thousand SSHShell connection at the same time?

Posted: Fri 22 Aug 2014 04:34
by applespring
while reading the source code, seems that OnAsynRecevieEvent is fired as by a timer instead of I/O event.

Am I right?

If so, then there will be 8 thousand timer be created. And I think this could be a problem root?

Is it possible that OnAsynReceiveEvent is fired by I/O instead of timer?

Re: Possible to have 8 thousand SSHShell connection at the same time?

Posted: Wed 01 Oct 2014 08:49
by Dimon
Set the TScSSHChannel.CallAsyncEventsInMainThread property to False for raising the OnAsyncError event in a secondary thread.
This property is availabled since SecureBridge version 6.4.6.