2009-11-26 78 views
2

我們有一個flex應用程序與我們的服務器進行通信。 flex應用程序會將很多HTTP請求(帖子和獲取)發送到服務器,在很多情況下是並行的。Flex隨機刪除連接到服務器

我們一直注意到我們從flex應用程序中獲得了許多斷開的連接。

服務器根本沒有看到任何失敗的請求,並且沒有加載。

我也懷疑flex可能是on-connection-drop,會自動重試POST或GET請求,導致我們的服務器接收到兩次請求。

有沒有人遇到過這種情況?

我該如何緩解這個問題?

+0

我們INB特別是使用: mx.rpc.http.HTTPService發帖的 和 mx.controls.Image.load(stringUrl)加載圖像 和 flash.media.Sound.load(新的URLRequest( stringUrl)來加載音頻 – Patrick 2009-11-26 02:05:29

+0

您是否有任何可複製的測試用例來複制該問題? – 2009-11-26 04:17:32

+0

不幸的是,我們一直在試圖查看它何時發生的相似之處,但我們找不到共同的分母 – Patrick 2009-11-26 21:40:43

回答

1

我們有這樣的問題,我們也找不到問題。搜索了很長時間後,我們發現我們的sqlserver被重載了(因爲我們登錄了許多信息到服務器)。現在我們登錄到一個txt文件,一切正常。

我們的Flex應用程序是一個測試工具,350名考生(平均)同時參加考試。 webserver和sqlserver的負載非常高,因爲每隔30秒就會將flex應用程序的狀態保存到服務器(state =候選人正在處理的當前練習)。

我們沒有任何問題,所以我猜你的問題不是flex應用程序。也許這是網絡?

我們使用WebORB和amf遠程調用。我們還有一個用於提取媒體的retrieveBlob.aspx處理程序。平均而言,當350名候選人開始會話時,會同時獲取大約3500個媒體文件(通過服務器緩存)。在這種情況下,我們迄今沒有任何問題。

我們實現的另一件事是一個後備系統,如果某個遠程調用失敗,flex將使用相同的參數再次調用它。如果再次失敗,則向候選人顯示一條錯誤消息,指出需要重新啓動應用程序(並且完成恢復)。

Flex自動重試帖子或獲取是我在應用程序中還沒有看到的東西。

您正在使用哪臺服務器? (我們使用Flex-Weborb-asp.net-sqlserver)。

+0

我們在一個Tomcat前面使用了一個Java hibernate應用程序到MySql數據庫 - 但是我們在服務器端看不到任何失敗的請求,沒有排隊,並且響應時間非常好。 – Patrick 2009-11-26 21:39:26

+0

另外,您的350個候選人是否與服務器在同一網絡上?或者他們是否跨雲? – Patrick 2009-11-26 21:42:39

+0

以及您使用何種方法加載音頻和圖像?mx.controls.Image.load stringUrl)和flash.media.Sound.load(新的URLRequest(stringUrl))? – Patrick 2009-11-26 22:40:23

2

我遇到過這個問題,因爲沒有堅持引用加載對象(URLLoader?),認爲只要添加所有正確的事件監聽器就足夠了。它被垃圾收集並且無法完成。解決方案是將所有加載URLLoaders的文件保存在一個根目錄集合中,如字典,並在完成時刪除它們。

你的問題可能是相關的嗎?

+0

它可能肯定是相關的......不僅僅是......我想聽聽更多的選擇..謝謝堆,但肯定會看到這一點。 – Patrick 2009-11-26 01:43:17

+0

我們INB特別是使用: mx.rpc.http.HTTPService使郵政和 mx.controls.Image.load(stringUrl)加載圖像和 flash.media.Sound.load(新的URLRequest(stringUrl )來加載音頻 – Patrick 2009-11-26 02:06:13