We have two apps running on a solaris x86 host which connects via TCP/IP to two serial ports (configured prn with no flow control) on a TS4. This is a protocol link to a third party.
Tty termtype dev sess uid edelay auto bin group dport dest
1 vt100 prn 4 none 1 off off none none none
2 vt100 prn 4 none 1 off off none none none
3 vt100 term 4 none 1 off off none none none
4 vt100 term 4 none 1 off off none none none
If the solaris host is powered off suddenly or reset, when it comes up again it will not connect to the TS4, because it now has different ephemeral port numbers. (a SYN from the host is replied with an RST from the TS4).
Also the problem sometimes occurs on only one port connection, with unknown cause.
The TS4 shows (using ‘who’) that it already has two existing tty processes running and connected to ports 2101, 2102, I assume waiting for data (that will never come) from the old ephemeral ports on the host.
>>> These tty processes never time out, and I see no config option for this, eg such as inactivity time-out. <<<
I have configured TCP keepalives to reset the connection when the host socket disappears, and this works, but the minimum recovery time I can configure is about 50 secs, which is too long.
TCP KeepAlive
Active : on
Byte : on
Idle : 00:00:10 (Minimum time)
TCP Probe
Count : 5 (Minimum)
Interval : 10 seconds (Minimum)
Is there another way to do this which will result in recovery times < 10 seconds?
Is this a bug, or, can you enhance your firmware to provide a timeout config option, or change the keepalive minimum values?
I have tried this on release_82000716_K and release_82000716_J firmware.