I have a Java server application running on a windows 2008 machine, and I frequently connect over RDP to monitor it or complete other work. However, if my RDP connection ever lags, Windows also seems to get hung up, causing Java to drop some of its client connections. Does anyone know why some RDP packet loss affects the system in such a harmful way, and if there’s anything that can be done about it? I may otherwise need to start using a 3rd-party remoting application.
Share
Painting to the screen is normally expected to be synchronous and fast, in which case it normally doesn’t matter if other tasks need to execute on the UI thread, or if the UI thread holds locks that contend with background threads. However as soon as you throw RDP in to the mix, the UI thread will be held up until the paint completes, which could be some time if your connection is laggy. This will then have a knock-on effect on any other tasks which have to wait for the paint to complete.
My understanding is that VNC works by noting the updated regions and asynchronously scraping them and sending the updated data to the client, while pcAnywhere works by shadowing the paint commands and asynchonously sending them to the client. Both of these allow the application to paint at full speed while the remote connection catches up.