我們有一個flex應用程序與我們的服務器進行通信。 flex應用程序會將很多HTTP請求(帖子和獲取)發送到服務器,在很多情況下是並行的。Flex隨機刪除連接到服務器
我們一直注意到我們從flex應用程序中獲得了許多斷開的連接。
服務器根本沒有看到任何失敗的請求,並且沒有加載。
我也懷疑flex可能是on-connection-drop,會自動重試POST或GET請求,導致我們的服務器接收到兩次請求。
有沒有人遇到過這種情況?
我該如何緩解這個問題?
我們有一個flex應用程序與我們的服務器進行通信。 flex應用程序會將很多HTTP請求(帖子和獲取)發送到服務器,在很多情況下是並行的。Flex隨機刪除連接到服務器
我們一直注意到我們從flex應用程序中獲得了許多斷開的連接。
服務器根本沒有看到任何失敗的請求,並且沒有加載。
我也懷疑flex可能是on-connection-drop,會自動重試POST或GET請求,導致我們的服務器接收到兩次請求。
有沒有人遇到過這種情況?
我該如何緩解這個問題?
我們有這樣的問題,我們也找不到問題。搜索了很長時間後,我們發現我們的sqlserver被重載了(因爲我們登錄了許多信息到服務器)。現在我們登錄到一個txt文件,一切正常。
我們的Flex應用程序是一個測試工具,350名考生(平均)同時參加考試。 webserver和sqlserver的負載非常高,因爲每隔30秒就會將flex應用程序的狀態保存到服務器(state =候選人正在處理的當前練習)。
我們沒有任何問題,所以我猜你的問題不是flex應用程序。也許這是網絡?
我們使用WebORB和amf遠程調用。我們還有一個用於提取媒體的retrieveBlob.aspx處理程序。平均而言,當350名候選人開始會話時,會同時獲取大約3500個媒體文件(通過服務器緩存)。在這種情況下,我們迄今沒有任何問題。
我們實現的另一件事是一個後備系統,如果某個遠程調用失敗,flex將使用相同的參數再次調用它。如果再次失敗,則向候選人顯示一條錯誤消息,指出需要重新啓動應用程序(並且完成恢復)。
Flex自動重試帖子或獲取是我在應用程序中還沒有看到的東西。
您正在使用哪臺服務器? (我們使用Flex-Weborb-asp.net-sqlserver)。
我們在一個Tomcat前面使用了一個Java hibernate應用程序到MySql數據庫 - 但是我們在服務器端看不到任何失敗的請求,沒有排隊,並且響應時間非常好。 – Patrick 2009-11-26 21:39:26
另外,您的350個候選人是否與服務器在同一網絡上?或者他們是否跨雲? – Patrick 2009-11-26 21:42:39
以及您使用何種方法加載音頻和圖像?mx.controls.Image.load stringUrl)和flash.media.Sound.load(新的URLRequest(stringUrl))? – Patrick 2009-11-26 22:40:23
我遇到過這個問題,因爲沒有堅持引用加載對象(URLLoader
?),認爲只要添加所有正確的事件監聽器就足夠了。它被垃圾收集並且無法完成。解決方案是將所有加載URLLoader
s的文件保存在一個根目錄集合中,如字典,並在完成時刪除它們。
你的問題可能是相關的嗎?
我們INB特別是使用: mx.rpc.http.HTTPService發帖的 和 mx.controls.Image.load(stringUrl)加載圖像 和 flash.media.Sound.load(新的URLRequest( stringUrl)來加載音頻 – Patrick 2009-11-26 02:05:29
您是否有任何可複製的測試用例來複制該問題? – 2009-11-26 04:17:32
不幸的是,我們一直在試圖查看它何時發生的相似之處,但我們找不到共同的分母 – Patrick 2009-11-26 21:40:43