我们有一个与我们的服务器通信的flex应用程序。 flex应用程序向服务器发出许多HTTP请求(发布和获取),在许多情况下是并行的。
我们一直注意到,我们从flex应用程序中获得了很多连接丢失。
服务器根本看不到任何失败的请求,也没有加载。
我也怀疑flex可能是on-connection-drop,自动重试POST或GET请求,导致我们的服务器收到请求两次。
有没有人遇到过这种情况?
如何缓解此问题?
答案 0 :(得分:2)
我遇到过这个问题,原因是没有继续引用加载对象(URLLoader
?),认为添加所有正确的事件监听器就足够了,一旦设置好了。它被垃圾收集而无法完成。解决方案是将所有加载URLLoader
保存在root集合中,如字典,并在完成时删除它们。
你的问题可能有关系吗?
答案 1 :(得分:1)
我们遇到过这样的问题,我们也找不到问题。搜索了很长时间后,我们发现我们的sqlserver被重载了(因为我们登录了许多信息到服务器)。现在我们登录到txt文件,一切正常。
我们的flex应用程序是一个测试工具,350名候选人(平均)同时参加。 Web服务器和sqlserver的负载非常高,因为每30秒将Flex应用程序的状态保存到服务器(状态=候选人正在进行的当前练习)。
我们没有遇到任何问题,所以我猜你的问题不是flex应用程序。也许这是网络?
我们使用WebORB和amf远程调用。我们还有一个用于获取媒体的retrieveBlob.aspx处理程序。平均而言,当350个候选者开始会话时,同时获取大约3500个媒体文件(在服务器上进行缓存)。在这种情况下,到目前为止我们没有任何问题。
我们实现的另一件事是回退系统,如果某些远程调用失败,flex会使用相同的参数再次调用它。如果它再次失败,则会向候选人显示一条错误消息,说明需要重新启动应用程序(并且已完成恢复)。
Flex自动重试帖子或获取是我在申请中尚未看到的内容。
您使用的是哪台服务器? (我们使用Flex-Weborb-asp.net-sqlserver)。