Background:
The clients and server instance are connected via VPN tunnel. The
firewalls between client and server side have been addressed, where
the Flex TCP/IP connections won't timeout unless inactive for over 1
hour.
Between client side network and server side network there are the
routers, firewalls, and one load-balancer to keep in mind.
Problem:
My customers have observed that throughout the day their connection
is dropped various times. I have ran a test where I observed the
same issue, however for the most part my connection gets dropped
after over 1 hour of inactivity on the application using Flex
framework.
I ran Wireshark to capture the HTTP and TCP traffic between client
and server side communication, and can't seem to capture what is
causing the connection to be dropped.
My customers in question however, have seen this issue with more
frequency. They are on a separate network from mine, and we both
have dedicated VPN tunnels to the server side network.
Looking at the JBoss server log where we track login/logout
functionality, I do observe that customers are logging in every 20
minutes or so on certain days, without a logout being recorded.
Which basically tells me their connection was dropped, causing them
to have to re-login.
The message I get on the browser is that the connection was lost,
followed by the following message pop-up:
Channel.Ping.Failed error url: 'http://<url_of_site>/
{context.root}/messagebroker/http"
Looking for feedback on:
1. One possible solution is to implement in the Flex framework based
application a heartbeat type of functionality. This would help keep
the TCP connections from going stale. Anyone taken this approach?
Would it be possible?
2. In the event of a network based issue, the heartbeat may not be
able to prevent the connection drop. Any idea if the Flex framework
can simply re-establish the connection without having the client re-
login?
Thanks in advance for any pointers.