三层结构的一个问题(50分)

  • 主题发起人 主题发起人 zhlmxh
  • 开始时间 开始时间
Z

zhlmxh

Unregistered / Unconfirmed
GUEST, unregistred user!
我没有做过三层的程序,但我看过许多关于三层的资料。我一直以为客户端通过中间层与数据库联接,无论有多少个客户端,与数据库的联接只有一个。今天我试着用Delphi做了一个简单的三层程序,创建中间层时Instancing选项选择的是Multiple Instance,数据库为SQL Server。我发现,当我打开3个客户端,从SQL Server企业管理器中查看数据库的联接为3,不是我一直以为的1个。如果有N个客户端,与数据库的联接不就是N个了吗?如果客户端数量很大岂不一样占用大量资源。这与C/S结构的又有什么区别?
 
关注中,这些概念俺也想搞清楚
 
Multiple Instance是多重实例啊,
每次一个,我通常做成NT服务的三层。。
 
蓝叶菱,你做成NT服务的三层也是需要设置Instancing选项的啊,如果设置成Multiple Instance,与数据库一样还是有很多联接啊!
 
當然一個客戶端一個連接了,几個客戶端一個連接那事務不亂套了啊,事務是針對連接的嘛.
如果有一個客戶端退出了,中間層不會馬上中止SQL的連接,下一個客戶端繼續用.可用做試驗試試嘛.
 
数据库应该有自己的管理机制,一般不会出问题
 
那连接太多了,不是太浪费资源了?可以看看连接池的实现,
 
DELPHI的MIDAS来做三层时,其中数据库连接一般是放在远程数据模块上的,这时每有一个客户端连接上来时,就是创建一个新的远程数据模块实例,所以也会有一个新的数据库连接,但如果结合连接池技术的话,数据库连接可以共享(指中间服务器到数据库之间)
 
做成COM+ ,即automation 类型的(DLL),即可只有一个连接,如果是EXE(进程外)类型的MIDAS服务器,则一个客户端就会打开一个EXE,这样就会有多个连接
 
多人接受答案了。
 
后退
顶部