社区
Web Services
帖子详情
web service 连接池问题
fletcher
2004-08-28 03:48:10
在我的项目里有多个web service 都有数据库连接我想让他们共享同一个连接怎么实现?
...全文
620
11
打赏
收藏
web service 连接池问题
在我的项目里有多个web service 都有数据库连接我想让他们共享同一个连接怎么实现?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ddggggdd
2004-09-01
打赏
举报
回复
连接池应该可以满足,只要连接串相同,都会放在同一池中,如果非要别的办法,考虑一下连接工厂.
jamzh
2004-08-31
打赏
举报
回复
帮你顶!
fletcher
2004-08-31
打赏
举报
回复
还有更好的办法吗
pgwron
2004-08-30
打赏
举报
回复
心情不好,没分也回
Tomgus
2004-08-29
打赏
举报
回复
连接池允许应用程序从连接池中获得一个连接并使用这个连接,而不需要为每一个连接请求重新建立一个连接。一旦一个新的连接被创建并且放置在连接池中,应用程序就可以重复使用这个连接而不必实施整个数据库连接创建过程。
当应用程序请求一个连接时,连接池为该应用程序分配一个连接而不是重新建立一个连接;当应用程序使用完连接后,该连接被归还给连接池而不是直接释放。
如何实现连接池
确保你每一次的连接使用相同的连接字符串(和连接池相同);只有连接字符串相同时连接池才会工作。如果连接字符串不相同,应用程序就不会使用连接池而是创建一个新的连接。
优点
使用连接池的最主要的优点是性能。创建一个新的数据库连接所耗费的时间主要取决于网络的速度以及应用程序和数据库服务器的(网络)距离,而且这个过程通常是一个很耗时的过程。而采用数据库连接池后,数据库连接请求可以直接通过连接池满足而不需要为该请求重新连接、认证到数据库服务器,这样就节省了时间。
缺点
数据库连接池中可能存在着多个没有被使用的连接一直连接着数据库(这意味着资源的浪费)。
技巧和提示
1. 当你需要数据库连接时才去创建连接池,而不是提前建立。一旦你使用完连接立即关闭它,不要等到垃圾收集器来处理它。
2. 在关闭数据库连接前确保关闭了所有用户定义的事务。
3. 不要关闭数据库中所有的连接,至少保证连接池中有一个连接可用。如果内存和其他资源是你必须首先考虑的问题,可以关闭所有的连接,然后在下一个请求到来时创建连接池。
连接池FAQ
1. 何时创建连接池?
当第一个连接请求到来时创建连接池;连接池的建立由数据库连接的连接字符创来决定。每一个连接池都与一个不同的连接字符串相关。当一个新的连接请求到来时如果连接字符串和连接池使用的字符串相同,就从连接池取出一个连接;如果不相同,就新建一个连接池。
2. 何时关闭连接池?
当连接池中的所有连接都已经关闭时关闭连接池。
3. 当连接池中的连接都已经用完,而有新的连接请求到来时会发生什么?
当连接池已经达到它的最大连接数目时,有新的连接请求到来时,新的连接请求将放置到连接队列中。当有连接释放给连接池时,连接池将新释放的连接分配给在队列中排队的连接请求。你可以调用close和dispose将连接归还给连接池。
4. 我应该如何允许连接池?
对于.NET应用程序而言,默认为允许连接池。(这意味着你可以不必为这件事情做任何的事情)当然,如果你可以在SQLConnection对象的连接字符串中加进Pooling=true;确保你的应用程序允许连接池的使用。
5. 我应该如何禁止连接池?
ADO.NET默认为允许数据库连接池,如果你希望禁止连接池,可以使用如下的方式:
1) 使用SQLConnection对象时,往连接字符串加入如下内容:Pooling=False;
2) 使用OLEDBConnection对象时,往连接字符串加入如下内容:OLE DB Services=-4;
zhpsam109
2004-08-29
打赏
举报
回复
http://www.microsoft.com/china/msdn/events/featureevents/2004/MSDevTrainingCourse.mspx#XSLTsection124121120120
zhpsam109
2004-08-29
打赏
举报
回复
顶!
The123
2004-08-29
打赏
举报
回复
最好还是不要共享同一个连接,否则就会同楼上所说的
如果硬要使用,那就必须要用一个独立的线程监视这个连接了,一旦该连接被一个对象调用了,那其他需要调用这个连接的对象就排队等候吧,直到这个对象结束对连接的调用,下一个对象再上吧。呵呵,不知描述的是否清楚。
serf
2004-08-28
打赏
举报
回复
不要用静态连接对象,这样不管你的池有多大,只要不关闭,总是使用其中一个连接而已,容易产生访问冲突。
serf
2004-08-28
打赏
举报
回复
.net数据库连接池还没有特别明确的规格,目前是oleConnection和sqlConnection实现不一样。ole的是靠驱动程序的管理器去配置,程序内不用控制。sqlConnection是根据连接字符串确定连接池的,只要连接串同,就是使用的一个连接池。连接串内增加"Min Pool Size=x;Max Pool Size=y",x,y是池容纳连接的最小最大数限定。池是基于应用域,而不是进程管理的。
1979xt
2004-08-28
打赏
举报
回复
设一个静态的连接对象就行,不过共享连接容易造成使用时的冲突问题,而且.net中的连接对象并不是长连接的,对资源的消耗也不是很大,共享有什么好外吗?
SpringMVC+Mysql实例详解
数据库
连接池
是提高性能的关键,例如Apache的DBCP或C3P0,它们能有效管理数据库连接,减少资源消耗。在Spring配置文件中,你会看到关于数据源和
连接池
的配置。 业务逻辑层通常包含
Service
接口和其实现类,它们封装...
Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境
最后,连接MySQL数据库,配置数据库
连接池
,如Druid或HikariCP。 在实际开发中,开发者还需要了解如何编写Controller、
Service
、DAO层的代码,以及如何使用模板引擎(如Thymeleaf或FreeMarker)进行视图渲染。同时...
最新java ee api中文版帮助文档 chm格式
8. **JNDI(Java Naming and Directory Interface)**:JNDI允许程序查找和访问命名和目录服务,如数据库
连接池
、邮件服务器等。 9. **JAF(JavaBeans Activation Framework)**和**JAFR(JavaBeans Activation ...
十二、
连接池
线程池配置——HttpClient
连接池
通过合理配置
连接池
参数、正确处理连接的使用和释放,以及关注
连接池
的生命周期和性能监控,可以有效提高。下面是对
连接池
源码的重要步骤分析,包括连接的复用和非复用情况的处理,以及
连接池
内部的数据结构。此异常...
从零开始实现C++ Tiny
Web
Server(四)---- 拨开云雾见天日,一文讲透线程池与
连接池
Pool
连接池
2.1 RAII 2.2
连接池
底层实现 4. 流程图 5. C++11的一些细节 6. 代码 threadpool.h sqlconnpool.h sqlconnpool.cpp test.cpp 结束语 前言 好吧,我承认有点标题党的成分所在。可能是最近干啥都比较急功近利...
Web Services
12,166
社区成员
16,325
社区内容
发帖
与我相关
我的任务
Web Services
.NET技术 Web Services
复制链接
扫一扫
分享
社区描述
.NET技术 Web Services
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章