请教:网络服务程序使用ADO,多线程并发访问SQL-SERVER时,该用哪种模式?
我手上正在写一个网络服务程序(设为进程a),使用IOCP(完成端口),接收远端客户机(进程b)的自定义数据,通过ADO,转发为对内网一台SQL-SERVER的数据请求。目前的模式是,全部对SQL-SERVER的数据请求,都使用同1个ADOConnect。这个模式,在压力测试和进程b出现异常的情况下,经常导致那1个ADOConnect出现“数据库访问异常”,我很纳闷:
1。并发多线程共用1个ADOConnect对SQL-SERVER进行访问(其中一些调用还涉及‘事务操作’)时,是否非常容易出现ADO异常(至少我经常遇上了)?
我打算换个模式,用多线程配合多个ADOConnect来访问SQL-SERVER:用IOCP(完成端口)来调度各个ADOConnect,并分配给每1个当时激活的线程使用。这种用法,是不是这种程序的流行用法?我似乎见论坛的旧贴里有人提过,但是不敢肯定,因为目前项目压力很大,时间上禁不起折腾。
我的这个网络服务程序也同时兼容ACCESS做数据库的情况。ACCESS和SQL-SERVER的ADO使用差别,好像是:ACCEES在1个ADOConnect内支持事务嵌套,但是却不能在1个进程内对同1个mdb文件建立多个ADO连接;而SQL-SERVER在1个ADOConnect内不支持事务嵌套,却能在1个进程内建立多个A并发DO连接。
2。情况是这样么?
请各位有实际开发经验的朋友们帮帮忙,给个比较肯定的答复,或者,给点经验。
(喜欢分,并且给我关键信息的朋友,如果在乎分,我可以再开几个贴,我可用分还是比较充裕的)
先谢谢大家了!!!