通过以上优化,可以使你的封装类以最低的资源消耗来获取最大的性能.我们可以这样来进行测试:
把if(dsCache == null){}发生时的情况记录到日志中,看看什么时候发生了这种异常,我对我的数据库进行了
跟踪,我们给青岛日报社做的一台邮件系统主机上有6万多用户,同时并发的访问量很大,但日记记录,只有每次
重启动应用的时候才产生一条记录,也就是ConnectionFactory第一次调用时才产生日志,其它情况非常正常:
public class ConnectionFactory{
private static DataSource dsCache = null;
private static Properties properties = new Properties();
aMethodForGetConnectio(){
if(dsCache == null){
synchronized(this){
if(dsCache==null){
if(!properties.containsKey("key"))
properties.load(new FileInputStream("配置文件"));
//只有在没有找到属性时才去再读配置文件
Context ct = new InitialContext();
dsCache = (DataSource) ct.lookup(properties.getProperty("key"));
}
}
//当发生dsCache == null时,记录下发生对该方法的调用者:
PrintWriter pw = new PrintWriter(new FileWriter("connection.log",true));
pw.println(new java.util.Date() + ":当前方法名如aMethodForGetConnectio():"
+ sun.reflect.Reflection.getCallerClass(2));
pw.close();
}
Connection conn = dsCache.getConnection();
}
}
文章出处:DIY部落(http://www.diybl.com/course/3_program/java/javashl/200855/112957_2.html)
分享到:
相关推荐
赠送jar包:dynamic-datasource-spring-boot-starter-3.4.1.jar; 赠送原API文档:dynamic-datasource-spring-boot-starter-3.4.1-javadoc.jar; 赠送源代码:dynamic-datasource-spring-boot-starter-3.4.1-sources...
赠送jar包:spring-cloud-alibaba-sentinel-datasource-2021.1.jar; 赠送原API文档:spring-cloud-alibaba-sentinel-datasource-2021.1-javadoc.jar; 赠送源代码:spring-cloud-alibaba-sentinel-datasource-2021....
赠送jar包:sentinel-datasource-extension-1.8.0.jar; 赠送原API文档:sentinel-datasource-extension-1.8.0-javadoc.jar; 赠送源代码:sentinel-datasource-extension-1.8.0-sources.jar; 赠送Maven依赖信息...
赠送jar包:sentinel-datasource-extension-1.8.0.jar; 赠送原API文档:sentinel-datasource-extension-1.8.0-javadoc.jar; 赠送源代码:sentinel-datasource-extension-1.8.0-sources.jar; 赠送Maven依赖信息...
赠送jar包:dynamic-datasource-spring-boot-starter-3.4.1.jar; 赠送原API文档:dynamic-datasource-spring-boot-starter-3.4.1-javadoc.jar; 赠送源代码:dynamic-datasource-spring-boot-starter-3.4.1-sources...
该项目采用标签形式对Datasource进行注入将Datasource组件交给容器进行统一管理
Dynamic-Datasource (opens new window)- 基于 SpringBoot 的多数据源组件,功能强悍,支持 Seata 分布式事务。 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 支持数据库敏感配置信息 ...
Dynamic-Datasource (opens new window)- 基于 SpringBoot 的多数据源组件,功能强悍,支持 Seata 分布式事务。 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 支持数据库敏感配置信息 ...
dynamic-datasource.zip
赠送jar包:spring-cloud-alibaba-sentinel-datasource-2021.1.jar; 赠送原API文档:spring-cloud-alibaba-sentinel-datasource-2021.1-javadoc.jar; 赠送源代码:spring-cloud-alibaba-sentinel-datasource-2021....
Dynamic datasource, multipl-SpringBoot-DynamicDataSource
简单方法解决WinForm程序,系统报“设置 DataSource 属性后无法修改项集合”的错误
建立 BW datasource,使用user exit 增强datasource
sentinel-datasource-extension-file-pull.zip
sentinel-datasource-extension-1.4.0.jar
由于毕业后工作没有对接到专业问题,导致四五年没有碰过Winform程序了。突然由于工作问题,为了...cbTcid.DataSource = CustomerBLL.select(); cbTcid.ValueMember = Cid; cbTcid.DisplayMember = Cpname; } else { ret
dynamic-datasource-spring-boot-starter-3.2.0.jar
JDBC1.0是原来是用DriverManager类来产生一个对数据源的连接。JDBC2.0用一种替代的方法,使用DataSource的实现,代码变的更小巧精致,也更容易控制。