请问一下pb做的webservice,如果加入应用服务器端的数据缓冲池,以及如何建议数据库连接池?

圣殿骑士18 2009-04-30 09:59:48
在使用pb11.2编写webservice,发布到IIS上的对象好像是每次调用其函数,都会重新初始化和连接数据库。
请问一下,谁有在上面实现数据缓冲池和数据库连接池的思路共享一下?

数据缓冲池:比如我取某些基础数据,比必要每次都到数据库中去取,直接从应用服务器取即可
数据库连接池:不需要每次执行语句都重新连接,执行并断开数据库。
...全文
502 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
圣殿骑士18 2009-05-25
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 xiongxiao 的回复:]
并发是否成功跟你设置的测试时间是有关系的,真正的并发数应该是单位时间内成功多少,看你的测试结果,估计你设定的时间可能就是180S,最佳并发数是3000,刚好可以全通过,然后你并发数越多,因为每个并发都要占用时间,所以成功率反而下降了,如果你时间设大些,就算10000也是可以全通过的
[/Quote]
是这样
xiongxiao 2009-05-25
  • 打赏
  • 举报
回复
并发是否成功跟你设置的测试时间是有关系的,真正的并发数应该是单位时间内成功多少,看你的测试结果,估计你设定的时间可能就是180S,最佳并发数是3000,刚好可以全通过,然后你并发数越多,因为每个并发都要占用时间,所以成功率反而下降了,如果你时间设大些,就算10000也是可以全通过的


另外使用JAVA写后台,有时感觉比纯PB的C/S还快,估计有些数据库对JDBC的支持比ODBC要好要快,我用的DB2测试的
圣殿骑士18 2009-05-25
  • 打赏
  • 举报
回复
在IIS6上配置了web园可以大大提高并发处理,cpu效率也提高了。cpu占用率达到15%,但是会出现失败
我在服务器本地,配置web进程数=8,直接发起并发请求:
5000个并发 前3000个成功 其余失败
10000个并发 前2000个成功 其余失败

失败的提示是:代理无法连接上主机。

这说明并发的请求越高,成功执行的并发数越低。
好像最高的并发数只能达到3000个左右,并不仅仅是受cpu和内存限制。

那位知道还有什么其他的限制存在吗?
我的系统式windows20003
圣殿骑士18 2009-05-25
  • 打赏
  • 举报
回复
在远程服务器上的并发测试:
8核CPU,12G内存
1000个并发 55s
2000个并发 77s
3000个并发 111s
5000个并发 170s
10000个并发 380s

似乎是5000个并发以上,效率反而降低。而且执行时,观察服务器的cpu占用,始终只在2%左右。
不知道怎么才可以提高实际并发数?
圣殿骑士18 2009-05-24
  • 打赏
  • 举报
回复
数据库连接池数据库本身可以提供,可以不用考虑。
IIS上没有对象连接池的情况下,本机测试,顺序创建10000个对象占用cpu 50%左右,花费40s时间,似乎性能也不至于太差
joeli60 2009-05-23
  • 打赏
  • 举报
回复
我也很关注这个问题,在论坛里看到有个兄弟说能解决,不过他要卖他的整体框架,不肯说啊。。。
圣殿骑士18 2009-05-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xiongxiao 的回复:]
webservice是不能保存Session的,生成中间文件的办法估计不可行
用PB11写的web service发布在IIS上是有每次都需要重连接的问题,所以对不是太频繁访问的应用可以考虑用这种方案
否则建议用java来写后台,PB11专负责前台
[/Quote]
就怕有效率问题
xiongxiao 2009-05-22
  • 打赏
  • 举报
回复
webservice是不能保存Session的,生成中间文件的办法估计不可行
用PB11写的web service发布在IIS上是有每次都需要重连接的问题,所以对不是太频繁访问的应用可以考虑用这种方案
否则建议用java来写后台,PB11专负责前台
fang3307 2009-05-06
  • 打赏
  • 举报
回复
我也想知道怎么做
leiguo1985 2009-05-01
  • 打赏
  • 举报
回复
改天研究
圣殿骑士18 2009-05-01
  • 打赏
  • 举报
回复
恩,可以试试看。顶
WorldMobile 2009-04-30
  • 打赏
  • 举报
回复
如果你不用easerver或者其它应用服务器,可能比较麻烦

用MTS试试吧,省得自己处理这些东东
圣殿骑士18 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wang_quan_li 的回复:]
详细参考Pb分布式开发简明教程http://download.csdn.net/source/611164
简单明了
[/Quote]
打不开出错。看介绍是用easerver的,和我的要求不同,我是用IIS,easerver什么都给你考虑好了
newease 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wang_quan_li 的回复:]
详细参考Pb分布式开发简明教程http://download.csdn.net/source/611164
简单明了
[/Quote]

好像现在下载不了
wang_quan_li 2009-04-30
  • 打赏
  • 举报
回复
详细参考Pb分布式开发简明教程http://download.csdn.net/source/611164
简单明了
softvery 2009-04-30
  • 打赏
  • 举报
回复
有几种思路
1、定义Application级的变量
将数据保存在Application变量里,这样只要IIS不重启变量就存在
2、将数据生成中间文件,然后每个Session都来读取这个文件

662

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder Web 应用
社区管理员
  • Web 应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧