我們的Web應用程序結構爲3層。 (表示層,業務層,DB層)
所有業務邏輯都在業務層。
表示層向業務層請求CRUD並獲得處理用戶請求的結果。
順便說一下,我們在表示層上配置了讀取超時。 (3 secounds)
在這種情況下,如果某些結果慢慢來自業務層,則用戶會收到錯誤消息,並且CRUD處理正確完成。所以用戶再次嘗試操作。結果,數據被複制。
如何解決這個問題?只是增加閱讀時間?3層java web應用程序讀取超時問題
0
A
回答
0
對於業務層長時間運行的事務,你應該執行類似的表示層機制彗星:
- 用戶提交的事務,業務層立即返回
- 交易在後臺執行業務層
- 表示層定期輪詢業務層檢查事務的狀態
不幸的是,日機制通常需要在演示和業務層中進行重大的實施變更。在客戶端,JavaScript框架提供了這些功能。在服務器端,在servlet 3.0中找到的異步Servlet可能會有所幫助。
單獨增加讀取超時很簡單,但在大多數情況下無法讓您擺脫這種情況:如果客戶端請求通過代理/防火牆等等,後者可能會在您的表示層之前超時並關閉連接。
0
實現回滾,並在達到超時時執行該操作,或者如果在超時前完成,則只需提交數據庫事務即可。增加超時並不能解決任何問題。
0
最好的選擇的確是讓客戶端收到請求的確認,然後(稍後)確認完成或失敗。這涵蓋了典型的情況,除了失去聯繫或者非常慢的工作。
增加你的超時是明智的3秒的超時對於大多數嚴肅的工作是不切實際的(如果服務器暫時忙或者你有網絡延遲?)。
相關問題
- 1. Java http讀取超時問題
- 2. java.net.SocketTimeoutException:讀取超時問題
- 3. Java Web應用程序性能問題
- 4. Java Web應用程序同步問題
- 5. 字符編碼問題而讀在Java Web應用程序
- 6. 3層應用問題
- 7. ASP Web應用程序超時和可能的配置問題
- 8. java web應用程序中的圖層
- 9. Web應用程序時區問題
- 10. 何時讀取Java Web應用程序中的.properties文件
- 11. 從web應用程序調用應用程序時的問題
- 12. 三層Web應用程序
- 13. 當nusoap從PHP應用程序調用Web服務時,處理超時問題
- 14. Java應用程序問題
- 15. Web應用程序結構hierarcy問題
- 16. asp.net web應用程序請求超時
- 17. 會話超時在Java Web應用程序中不起作用
- 18. ASP.NET web抓取超時問題
- 19. mvc web應用程序應該是3層嗎?
- 20. Web應用程序 - 讀取USB令牌
- 21. Azure Web應用程序中的三層Web應用程序
- 22. 小應用程序Web部署問題
- 23. 多層web應用程序和多層web應用程序有什麼區別?
- 24. 問題在iis 7下運行web應用程序asp.net mvc 3
- 25. Web應用程序設計問題 - RoR 3
- 26. 什麼時候應該使用多層Web應用程序而不是單層Web應用程序?
- 27. 通過USB從Java程序讀取時,Arduino遇到Serial.readbytes()問題
- 28. 如何在3層web應用程序(ASP.NET MVC)中使用Autofac?
- 29. Web服務超時問題
- 30. 無法讀取Java Web應用程序中的屬性文件?
Websockets是投票,彗星等有趣的替代方案。 –
@TobiasRitzau非常真實。 [socket.io](http://socket.io/)是一個有趣的庫,它提供了可以將傳統輪詢技術作爲後備的websockets。 –