DCom结构: Oracle的Session连接数的问题! 在线等候中.....(100分)

  • 主题发起人 独孤剑
  • 开始时间

独孤剑

Unregistered / Unconfirmed
GUEST, unregistred user!
DCOM三层结构,数据库采用Oracle
中间层采用多Session方式,有5个中间层程序,客户端连接数为40个
总共会启用Session数为40*5=200个
应用过程中发现只要客户端连接数一多中间层应用服务器就会死机,
后发现Oracle的Session数大概是200左右
估计中间层死掉的原因是由于Oracle的Session数过多引起的,
请问各位大侠有没有办法解决Oracle的Session数的问题,把它控制在一个比较小的范围
是不是BDE那边有什么配置
由于项目马上就要上了,故在线等待中
如果分不够,还可以再加分,只要能解决问题
 
DELPHI的例子中有一个关于Session Pool的,你去看看也许有帮助。
我看了,但没看懂,哈哈
另外,你也可以找找其它的关于连接池或会话池,线程池的资料看看。
 
to 所有在看本问题的大侠
多少给小弟留点意见嘛,不论是有无建设性
to gmc001
正在看Demo
 
增加BDE的BufferSize,或CachSize.
 
我劝你不要用windows上的oracle。oracle 9i现在的死锁问题还没有fix。
我们这里碰到这样的case实在是太多了,windbg一路check,发现总是oracle
服务器端没有反应。
 
把TDatabase的HandleShared设为True,再在BDE Administrator里把Configuration->System->
INIT里把MTS POOLING设为True试试。
 
to Sachow,
为什么要这么设置呢,
我用了Session, Database.HandleShare可以设成False(好像李维的书上是这么搞的)
>>在BDE Administrator里把Configuration->System->INIT里把MTS POOLING设为True。
这个是什么作用,难道设成True,他会启动一个会话池,或连接池吗,但是DCom能用的上吗?
 
1、HandleShared默认是False,但只有设为True才能只享Sesseion,这样也才能解决你的问题。
详见李维的《分布式多层应用系统篇》 3-43页。
2、将MTS POOLING设为TRUE是使用MTS/COM+的数据库连接池功能。这与是否采用DCOM无关。
详见《分布式多层应用系统篇》 8-14页。
 
这也正在解决些问题,不过已有进展
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1252006
 
好像在BDE里面设置一个东东就可以了,具体那个我也不记得了,这个问题我们公司以前也有碰到过
 
高手在上,我只能打一个关注,
database.handleshed:=true;
autosessionname:=true;
哈。。
 
接受答案了
 
顶部