- 论坛徽章:
- 0
|
QUOTE:
原帖由 snow888 于 2009-3-31 23:18 发表
通过一个 service 连接不代表只有一个并发连接。
我举一个例子,你的 ERP 软件使用 odbc 与数据库进行连接,系统架构为 Client/Server 方式,使用长连接方式进行数据库操作,尽管你的客户端的配置都是通过一个用户名、一个服务名来进行连接,但同时有五台终端在使用这个 ERP 系统,那么这个时候的并发连接数是 5 个,而不是一个。
一个解决的办法是使用中间件进行隔离,Client 向后台发送数据,后台的中间件接受到数据后产生操作数据库的动作。这个时候连接数据库,操作数据,操作完成后断开数据库连接,并将结果返回给中间件,中间件将数据发送到前台,完成一个交易。这个数据库连接是使用了一个短连接的方式,整个操作在很短的时间内完成。
而很多的 ERP Client/Server 架构的系统,采用的是系统启动时开始连接数据库,并维持数据库的连接状态,操作数据库时不再重复连接数据库,直到应用退出才断开与数据库的连接,这种方式是长连接。当多个客户端在运行的时候,就会产生多个并发的长连接,随着多个应用的启动,有可能消耗掉所有的并发连接数资源,而造成上面的问题。
____________________________________________________________________________________________________________________________________
谢谢法师的回复,我大概明白了你的意思,我想问一下,因为现在改进系统对我来说不是很现实,所以想知道,在目前长连接的情况下,通过改变并法连接限制来解决目前的问题。
可以告诉我哪里找到并发连接的设置吗?它是一个SYBASE SERVER的设置,还是在ERP软件里的设置,或者中间件?因为此前,我已经增加了一个SYBASE SERVER的设置值,叫NUMBER OF USER CONNECTIONS,然后用sp_monitorconfig 'number of user connection 来观察SERVER, 但是CT_CONNECT的错误还是出现,而且连接数目远没有达到我的设定值,还有一个我怀疑的SYBASE SERVER设置就是NUMBER OF JAVA SOCKETS,这个值很奇怪,我设定为25, 但是通过sp_monitorconfig 'number of java sockets'发现,在目前使用数目却是100以上,居然超过25的设定值,好像实际使用数目并不受设定值约束。你觉得这个ERROR和这个设定值有关系嘛?
还有我很想知道怎样找到这个设置,就是你之前说的那个并发连接数目的设置。
谢谢勒 |
|