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而已。