PISystems.Refresh() will refresh the list of AF Servers and then execute a refresh on the all servers which it believes to be connected. Once an AF Server is connected, it will remain so until an error occurs attempting to communicate to it. Unfortunately, in this case, it appears that it is the System.Refresh which is first detecting the communication loss. There is an overload, PISystems.Refresh(false), which will refresh the list of AF Servers, but not execute individual PISystem.Refresh to each of the connected AF Servers. This overload was first added in the AF 2.3 Client release. You can use this method to circumvent the connection loss issue.