UNIGUI for delphi,是一款WEB RIA開發框架。開發WEB程式如傳統C/S般簡單,眾多DELPHIER趨之若鶩。
雖然上手非常容易,但要真正使用好,有些地方還是值得考究的。
網上有同仁說使用UNIGUI,如果客戶端達到200的數量,會致數據庫連接用磬,系統不可用。他以為是UNIGUI的並發不行。
UNIGUI冤哉!與UNIGUI何關!
究其原因,其使用ADO控件直連數據庫,凡開發過兩層c/s程序的人都知道,數據庫的連接數是有限的。
一般地WEB程式的客戶端數量比較大的,如果在UNIGUI中采用直連數據庫的方式,數據庫連接數就不足以應付諸多客戶。
那么如何解決此問題呢?
使用數據庫連接池。
我首先想到了在UNIGUI和數據庫再加一個DATASNAP中間件,因為中間件是原來就寫好了的,它包括有連接池和對象池。
無疑這種方法是可行的。后來再想,能不能不要中間件,而把連接池和對象池直接放UNIGUI里面,這樣省卻DATASNAP中間件。
如何做呢?
用UNIGUI工程向導生成一個新工程,有一個SERVERMODULE單元,此單元是針對所有客戶SESSION,將全局的連接池對象或對象池對象
在它里面創建和銷毀就可以了。
具體演示代碼在此處省略。
合理地優化UNIGUI服務端程序,支持並發數量還是非常可觀的,絕不只200而已。