- 浏览: 75891 次
- 性别:
- 来自: 广州
文章分类
最新评论
PooledConnectionManager
- 博客分类:
- Java
import java.sql.Connection; import java.sql.DriverManager; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Properties; import oracle.jdbc.OracleDriver; import oracle.jdbc.pool.OracleOCIConnectionPool; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import com.logging.LogUtil; import com.common.Constants; import com.common.Util; import com.ui.AbstractPlugin; /** * PooledConnectionManager * */ public class PooledConnectionManager { /** * String decryptFileName */ private String decryptFileName = "OCIFileName"; /** * PooledConnectionManager instance */ private static PooledConnectionManager instance = null; /** * Map poolMap */ private static Map poolMap = null; /** * String defaultPoolName */ private static String defaultPoolName = null; /** * String debugInfoFlag */ private static String debugInfoFlag = "false"; /** * PooledConnectionManager * @return instance * @throws Exception */ public static PooledConnectionManager getInstance() throws Exception { if(instance == null) { instance = new PooledConnectionManager(); } return instance; } /** * PooledConnectionManager * @throws Exception */ protected PooledConnectionManager() throws Exception { if (poolMap == null) { poolMap = new HashMap(); SAXReader reader = new SAXReader(); Document document = reader.read(AbstractPlugin.class.getResourceAsStream(Constants.CONFIG_COMMON_PATH)); Element ociPoolsEle = (Element) document.getRootElement().element(Constants.OCIPOOLS); if("true".equals(ociPoolsEle.attributeValue("debugInfo"))) { debugInfoFlag = "true"; } //Get the name of decryptConsole String decryptConsole = ociPoolsEle.elementTextTrim(Constants.OCIPOOL_DECRYPT_CONSOLE); Iterator iter = ociPoolsEle.elementIterator("OCIPool"); DriverManager.registerDriver(new OracleDriver()); while (iter.hasNext()) { Element recordEle = (Element) iter.next(); if("true".equals(recordEle.attributeValue("default"))) { defaultPoolName = recordEle.attributeValue("name"); } Properties poolPro = new Properties(); poolPro.put(OracleOCIConnectionPool.CONNPOOL_MIN_LIMIT, recordEle.elementTextTrim(Constants.OCIPOOL_MINLIMIT_PRO)); poolPro.put(OracleOCIConnectionPool.CONNPOOL_MAX_LIMIT, recordEle.elementTextTrim(Constants.OCIPOOL_MAXLIMIT_PRO)); poolPro.put(OracleOCIConnectionPool.CONNPOOL_INCREMENT, recordEle.elementTextTrim(Constants.OCIPOOL_INCREMENT_PRO)); poolPro.put(OracleOCIConnectionPool.CONNPOOL_TIMEOUT, recordEle.elementTextTrim(Constants.OCIPOOL_CONIDLETIME_PRO)); //Decoding the password String password = Util.decrypt(recordEle.elementTextTrim(Constants.OCIPOOL_PASSWORD_PRO), decryptFileName, decryptConsole); OracleOCIConnectionPool cpool = new OracleOCIConnectionPool(recordEle.elementTextTrim(Constants.OCIPOOL_USERNAME_PRO), password, recordEle.elementTextTrim(Constants.OCIPOOL_URL_PRO), poolPro); poolMap.put(recordEle.attributeValue("name"), cpool); } } } /** * OracleOCIConnectionPool * @param poolName * @return cpool * @throws Exception */ public OracleOCIConnectionPool getConnectionPool(String poolName) throws Exception { OracleOCIConnectionPool cpool = (OracleOCIConnectionPool)poolMap.get(poolName); if(cpool == null) { throw new NoSuchPoolException("There is no OCI pool named \"" + poolName + "\"."); } if(debugInfoFlag.equals("true")) { this.printPoolInfo(poolName); } return cpool; } /** * OracleOCIConnectionPool * @return cpool * @throws Exception */ public OracleOCIConnectionPool getConnectionPool() throws Exception { OracleOCIConnectionPool cpool = null; if(defaultPoolName != null) { //Get the default pool which is assigned. cpool = (OracleOCIConnectionPool)poolMap.get(defaultPoolName); if(debugInfoFlag.equals("true")) { this.printPoolInfo(defaultPoolName); } } else { //If there is no default pool to be assigned,get the first pool. if(poolMap.keySet() != null) { cpool = (OracleOCIConnectionPool)poolMap.get(poolMap.keySet().toArray()[0]); if(debugInfoFlag.equals("true")) { this.printPoolInfo((String)poolMap.keySet().toArray()[0]); } } } return cpool; } /** * getConnection * @param poolName * @return conn * @throws Exception */ public Connection getConnection(String poolName) throws Exception { return this.getConnectionPool(poolName).getConnection(); } /** * getConnection * @return conn * @throws Exception */ public Connection getConnection() throws Exception { OracleOCIConnectionPool cpool = this.getConnectionPool(); if(cpool != null) { return cpool.getConnection(); } return null; } /** * printPoolInfo * @param poolName * @throws Exception */ private void printPoolInfo(String poolName) throws Exception { OracleOCIConnectionPool cpool = (OracleOCIConnectionPool)poolMap.get(poolName); LogUtil.info(this.getClass(), "Current OCI connection pool is: " + poolName + "."); LogUtil.info(this.getClass(), "Pool size is: " + cpool.getPoolSize() + "."); LogUtil.info(this.getClass(), "Active size is: " + cpool.getActiveSize() + "."); LogUtil.info(this.getClass(), "Min pool size limit is: " + cpool.getMinLimit() + "."); LogUtil.info(this.getClass(), "Max pool size limit is: " + cpool.getMaxLimit() + "."); } }
发表评论
-
HTTPClient
2012-12-21 21:11 0public class RenRen { // The ... -
Export To Excel - Testing
2012-12-18 13:15 0MainTest ..... Map configM ... -
Export To Excel - ExcelUtils.java [Version 0.2]
2012-12-18 13:11 9import java.io.BufferedReader; ... -
Export To Excel - Action Oupt Excel
2012-11-23 13:49 10public String doAction(Work ... -
Export To Excel - ExcelUtils.java
2012-12-17 16:31 3import java.io.BufferedReader; ... -
Export To Excel - ExcelDAO.java
2012-12-18 12:55 5import java.sql.CallableStateme ... -
Export To Excel - commonExcelStyle.css
2012-12-18 12:55 6body { FONT-FAMILY: "Ari ... -
Export To Excel - ExcelConstants.java
2012-12-18 12:55 5/** * <p><b> * ... -
Export To Excel - ExcelRowList.java
2012-12-18 09:55 5import java.util.ArrayList; im ... -
Export To Excel - ExcelRowItem.java
2012-12-17 16:32 7import java.util.ArrayList; im ... -
Export To Excel - ExcelInfo.java
2012-11-23 13:50 8/** * <p><b> * ... -
Export To Excel - ExcelColList.java
2012-11-23 13:50 6import java.util.ArrayList; im ... -
Export To Excel - ExcelColItem.java
2012-11-23 13:50 11Version 0.1 import java.uti ... -
Export To Excel - ExcelCellItem.java
2012-11-23 13:49 7public class ExcelCellItem { ... -
Util
2012-12-17 16:32 638import java.io.BufferedReader; ... -
DMSUtil
2012-12-17 16:31 663import java.io.ByteArrayInputSt ... -
FloatValidator
2012-10-05 13:42 727public class FloatValidator ext ... -
XmlHelper
2012-08-31 09:33 1219import java.io.ByteArrayInputSt ... -
XMLEncode
2012-08-30 18:43 1017public class XMLEncode implemen ... -
tagUtil
2012-08-30 18:42 841import java.util.Map; public ...
相关推荐
Lan仿朋友圈系统开源,可用于表白墙等微商相册,商品图册等.rarLan仿朋友圈系统开源,可用于表白墙等微商相册,商品图册等.rar
比如异步进行-Thread,安全句柄-CHandle,资源守卫-Guard,XML解析-rapidxml,以及其他注册表、文件基础操作。用于更加高效、安全的进行C++开发。温馨提示:至少需要支持C++0x标准的编译器。
集团企业IT技术架构规划方案qy.pptx
本Bash脚本用于自动化管理Java JAR应用的启动、停止及监控。首先检查JAR进程是否在运行,如在运行则安全终止。随后,使用预设的Java参数启动JAR文件,并将输出和错误日志重定向至日志文件。启动后,脚本持续监控JAR进程状态,确保其在预设时间内成功启动。本脚本提供了灵活的配置和错误处理机制,为Java应用的运维管理带来了便捷与可靠性。
基于价值认同的需求侧电能共享分布式交易策略matlab源码+项目说明+详细注释.zip # Supports_for_EPC 电力建设论文《基于价值认同的需求侧电能共享分布式交易策略》的支撑文件 ————————————学术交流———————————————————— 本论文提出了一种电能共享市场交易机制,利用一致性协议实现产消者之间关于价值的认同,实现了社会福利的最大化。 main_CA.m:针对10个产消者之间的电能共享,利用一致性算法完成市场的分布式出清 Pareto_analysis.m:通过两个产消者分析了电能共享市场的广义纳什均衡与市场效率。 运行环境: MATLAB R2014a YALMIP GUROBI 需要注意的是:若程序运行错误,请认真检查是否安装了YALMIP和GUROBI求解器。 ......
2024-2030全球及中国太阳能直流冰柜行业研究及十五五规划分析报告
springcodespringcodespringcodespringcode
2023年前10大汽车用电流检测放大器企业占据全球86%的市场份额
在STM32单片机上调试CAN总线并与其上位机通信时,需要遵循一系列的步骤和策略,以确保通信的可靠性和效率。以下是一些关键步骤和考虑因素: 硬件配置:确保STM32的CAN接口引脚正确连接到CAN收发器,并且CAN总线上的每个节点都通过120Ω的终端电阻正确终止。 波特率设置:所有CAN网络节点必须使用相同的波特率进行通信。波特率可以通过STM32的CAN外设的位时序寄存器(CAN_BTR)来设置。 初始化CAN外设:使用STM32的HAL库或标准库函数初始化CAN外设,包括设置工作模式、位时序、过滤器等。 过滤器配置:配置CAN过滤器以确定哪些消息ID可以被接收或发送。 中断配置:为了处理接收到的消息,通常需要配置CAN接收中断,并在中断服务例程(ISR)中处理消息。 发送和接收消息:实现CAN发送和接收消息的函数,使用HAL_CAN_Transmit_IT和HAL_CAN_Receive_IT等函数进行异步通信。 错误处理:实现错误处理机制,以应对可能的通信错误,如消息冲突、总线错误等。 回环测试:在只有一个STM32板的情况下,可以使用CAN的回环模式进行测试,以
2024年中国克拉霉素混悬液行业研究报告
EasyAnimate生成
Thinkphp内核仿918国际导航简洁模板网址导航源码.rarThinkphp内核仿918国际导航简洁模板网址导航源码.rar
基于matlab实现潮流计算的程序,可以帮助学习潮流计算。使用matlab编程,程序简单。好好学习潮流计算.rar
视觉毫米波简单后融合方法 视觉目标检测 毫米波目标检测
基于Reactor模式,支持单线程、多线程Reactor,也支持UDP服务
机械设计螺旋输送机sw17非常好的设计图纸100%好用.zip
有30w条数据
本Bash脚本用于自动化管理Java JAR应用的启动、停止及监控。首先检查JAR进程是否在运行,如在运行则安全终止。随后,使用预设的Java参数启动JAR文件,并将输出和错误日志重定向至日志文件。启动后,脚本持续监控JAR进程状态,确保其在预设时间内成功启动。本脚本提供了灵活的配置和错误处理机制,为Java应用的运维管理带来了便捷与可靠性。
嗨淘V12刷任务点赞系统源码+手动派单版本.rar嗨淘V12刷任务点赞系统源码+手动派单版本.rar
机械设计一次性手套机sw2016非常好的设计图纸100%好用.zip