2011-09-21 135 views
0

我的Web服務服務器端應用程序爲來自不同用戶的請求提供存儲過程。我打開並關閉每個請求的ADO連接。這是可取的還是可以有人提出更好的方法?並幫助我進行會話管理。 在此先感謝。Delphi 2007 Web服務服務器端應用程序

回答

1

ADO支持連接池,因此使它在TADOConnection

+0

1最好是重用在服務器側呼叫之間的現有連接,但連接池是爲了提高速度的第二最佳解決方案。 –

+0

感謝您的信息。我不知道如何重用以前的連接。請幫幫我 –

0

創建從空白一個新連接的你的ConnectionString屬性可以是非常耗時的(例如1秒以上與遠程Oracle連接),因此是成爲避免像地獄一樣的服務應用程序。

恕我直言,最好的解決方案(從性能POV)是維護每個服務器線程一個數據庫連接。所以它將取決於你的HTTP服務實現。

連接池也可以,如果你不希望處理線程,穆罕默德在他的回答中寫道。

也考慮使用服務器端緩存的答案。如果你知道結果是一致的,你應該更好地將其緩存在服務器端並在客戶端之間共享。當然,只有在客戶請求可以共享時才值得開發。

關於會話管理,你想知道什麼?我想這是關於客戶端會話。對於Web服務,主要用途是通過Cookie實現會話。有關其他可能性,請參閱this SO answer about authentication of a web service。恕我直言,RESTful方法(即無狀態)值得考慮的Web服務。