关于c#的连接池(以OracleConneciton为例)

摘要:
这可能是因为所有池连接都在使用,并且已达到最大池大小。关闭或释放以将连接放回池中。2.Oracle默认连接数:在init.ora(9.2)中,processs=150是最大连接数,我测试的最大连接数是146。使用以下语句查看当前连接数:从v$session中选择计数超过连接数:ORA-00020:超过最大进程数;例如,在Windows应用程序中,创建一个新连接。打开后,对updatenowait语句执行select*fromwhereempno=7934,关闭或释放。输入sqlplus并执行selectprogramfromv$session,其中用户名不为空。您将发现程序进程仍然存在。此时,我们的新连接位于连接池中。关闭程序,从v$session中选择用户名不为空的程序,您将发现程序进程已消失。

关于c#的连接池:(以OracleConneciton为例)
1,默认c#的windows application的程序进程是创建connection pool的(Pooling=false不创建connection pool);默认最大连接数(Max Pool Size)为100;
new一个连接,如果connection pool中空闲的连接,则不会创建连接,否则会创建;
超出最大连接数,请求会放入队列,直到connection pool中有空闲连接或连接请求超时:
System.InvalidOperationException: 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
close或dispose,将连接放回池中。

而web application的服务端进程为w3wp.exe(IIS6.0),不管有多少客户端,connection pool是由w3wp.exe创建,所以客户将共享connection pool;而windows

application就不同,有多少程序进程,就创建多少个connection pool。

2,Oracle默认连接数设置:
在init.ora(9.2)中proccesses=150是最大连接数,我测试最多连接数为146(可能预留给或被oracle后台服务用)。用下面语句来查看当前连接数:
select count(1) from v$session
超出连接数时:
ORA-00020:maximun number of processes exceeded;

例:windows application中, new一个新连接,open后,执行select * from emp where empno=7934 for update nowait语句,close或dispose。
进入sqlplus,执行select program from v$session where username is not null,会发现程序进程依然存在,此时我们new的连接就在连接池中。
关闭程序,select program from v$session where username is not null,会发现程序进程消失了。当然我之前new的连接不使用,连接池也会自己释放它。
(...待续)

免责声明:文章转载自《关于c#的连接池(以OracleConneciton为例)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ASP.NET WEBAPI 的身份验证和授权MySQL统计库表大小下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

HttpClient 专题

HttpClient is a HTTP/1.1 compliant HTTP agent implementation based on HttpCore.It also provides reusable components for client-side authentication, HTTP state management, and HTTP...

Spring配置-数据库连接池proxool[转]

 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。   数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据...

关于.NET大数据量大并发量的数据连接池管理 Virus

首先声明,本人以前做的都是小应用,还没有设计过百万、千万数据量的应用,并发量上万的应用,很多时候都是Applicatiion Server和DB Server在一台机器,或者将DB Server分离出来,单独在一台机器。由于最近的工作需要,故产生很多疑问,想要和大家一起探讨,向大家学习,希望大家不吝赐教,感谢大家的参与。 首先提一下本文的需求来源和具体的...

Mysql连接池 [ druid ] 的坑

Mysql无效链接异常:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure 背景分析 1、异常详情:异常的意思是,前一次成功的使用连接是699,944毫秒以前,也就是大概11分钟之前(空闲时间超过10分钟) 2019-06-29 14:16:02...

查询MySQL连接数

1.查看最大连接数: show variables like '%max_connections%'; 2.查看当前实时连接数: show status like 'Threads%'; 3.查看所有连接IP地址的连接数: select SUBSTRING_INDEX(host,':',1) as ip , count(*) from informatio...

springboot配置 Druid , yml格式

datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/mp?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai u...