Difference: OrphanSessionsDetection (1 vs. 2)

Revision 22008-09-19 - SteveFrizzell

Line: 1 to 1
Changed:
<
<
META TOPICPARENT name="APPXConnectionManagerForWindows"
>
>
META TOPICPARENT name="APPXLoginManagerForWindows"
  -- YanaLorne - 08 Aug 2007

Revision 12007-08-08 - YanaLorne

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="APPXConnectionManagerForWindows"

-- YanaLorne - 08 Aug 2007

Appxd and appxdsvc.exe have been "fixed" as of release 4.2.8 so that an APPX session can more reliably detect that the TCP connection to the client has been lost. This means that the session can then terminate itself instead of hanging around indefinitely as an orphan. There are four environment variables that can be set to override the default settings for appxd. The configuration parameters for the Windows based APPXDSVC service can be specified in the registry. After the service is installed, you would add an Expandable String Value to the Config Key. The Config Key for the APPXDSVC service would normally be found at: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\appxd-8060\Config

Configuration parameters for appxdsvce:

# TCPEnableKeepAlive = true #Enable TCP dead-connection detection

# TCPKeepCount = 8 #Maximum number of keep-alive pings

# TCPKeepIdle = 300 #Idle time before ping sent to client (in seconds)

# TCPKeepInterval = 60 #Interval between keep-alive pings

# TCPNoDelay = true #disable TCP packet filling delay?

Environment variables for appxd:

APPXD_DISABLE_KEEPALIVE

APPXD_KEEPIDLE

APPXD_KEEPINTERVAL

APPXD_KEEPCOUNT

The values shown are the default values, those values are installed when you create a new service and they are also the values that we use if the entries are missing from the registry.

The AppxDSvc installer only writes a Config entry if it differs from the default value. That means that the installer won't write out entries for the TCPKeepXXX values, but AppxDSvc will pretend like those values are present (and set to their default values).

You can add the entries manually if, for some reason, you want to change the defaults.

Setting
Argument
Default What it Does
TCPEnableKeepAlive true or false true Enable dead connection detection
TCPKeepIdle (seconds) 300 Idle time before starting to send pings
TCPKeepInterval (seconds) 60 Interval between keepalive pings
TCPKeepCount (count) 8 Count of keepalive ping attempts before closing

The time before a server session closes would be the combination of all of these. Here is what happens.

After 300 seconds of idle time the server TCP stack will start trying to ping the client TCP stack. The server will make 8 attempts to ping the client and get a response before giving up and closing. It will wait for 60 seconds after each ping attempt for a reply before sending the next ping.

So in this case it will be 300 seconds + ( 8 * 60 seconds ) = 780 seconds = 13 minutes before the server session goes away.

appxd has environment variables for these settings as follows:

APPXD_DISABLE_KEEPALIVE set to anything will turn off the keepalive code.

APPXD_KEEPIDLE = TCPKeepIdle

APPXD_KEEPINTERVAL = TCPKeepInterval

APPXD_KEEPCOUNT = TCPKeepCount

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback