ArcSOC.exe processes terminate by firewall

Discussion created by modybsystematics-co-il-esridist Employee on Jan 12, 2014

I have AGS 10.1 with map service accessing SQL Server database on a different machine.
The two machines have firewall between them.
Occasionally the service's ARCSOC.exe loses its underlying connection to the SDE.
When it happened we get the following error in the sdedc_log:
"SDE DBMS Error: 10054 Microsoft SQL Server Native Client: Communication link failure", followed by multiple "SDE DBMS Error: 0 Microsoft SQL Server Native Client: Communication link failure" errors.
I've discovered that the firewall between these two machines terminates every connection which is idle for above two hours. Creating exceptions in the firewall in my organization is inacceptable.
Any attempt to write a "keep alive" which queries the service fails because the SQL Server Native client DLL randomizes a different client port for every query, therefore the firewall will treat some of the connections as idle and terminate them.
Doing a recycle every hour did not helped too.
Can you think about any way to make the firewall understands that the connection should not be killed?
Will application connect helps? I understand it is not recommended.