It has been suggested that I set the lisa.vse.http.live.invocation.max.idle.socket property in order to avoid live invocation errors. What is this property and what does it do?
The VSE (Virtual Service Environment) attempts to optimise the use of sockets use when communicating with the live system when a virtual service is in live invocation mode.
In order to achieve this, the sockets, once opened, are held in a pool pending potential reuse.
However, if the live system disposes of the socket whilst it is still present in the pool, then attempting to reuse it will result in an error. This is often seen in the inspection view for the service as "The live system did not send a response."
It is therefore necessary to configure the VSE to cause the socket to be eliminated from the pool before the live system has taken this action.
The property lisa.vse.http.live.invocation.max.idle.socket controls the time for which an idle socket may be held in the pool awaiting reuse. This property has a default setting of 2 minutes (120 seconds) which may be overridden by placing an entry in the local.properties file.
For instance, to set the period over which a socket is held in the pool after its last use to 20 seconds, one may add
to local.properties. The actual maximum value will depend upon the behaviour of the live system, but, in order to ensure that there are no errors arising from reusing stale sockets using a time equal to or less than half of the expiry time within the live system would be prudent.
For example, if the live system expires sockets after they have been unused for 60 seconds, then set
lisa.vse.http.live.invocation.max.idle.socket=30s as an initial value, and reduce it further only if issues are still encountered.