连接池未注册org.logicalcobwebs.proxool.ProxoolException: Attempt to refer to a unregistered pool by its alias 'XXX'
情况一
代码之前一直运行正常,写了一个定时器后报错,本地测试为了立马能执行就用cron表达式* * * * * ?,为了只执行一次在最后面加上Thread.sleep(1000*3600*24)睡眠二十四小时从而达到每次测试只执行一次定时任务。
@Scheduled(cron="* * * * * ?")
public void execute() throws InterruptedException {
System.out.println("调用时间"+CommonTool.getNowDateStr());
insert();
Thread.sleep(1000*3600*24);
}
启动报错org.logicalcobwebs.proxool.ProxoolException: Attempt to refer to a unregistered pool by its alias 'XXX'

原因在于连接池没注册完成就调用了dao获取连接导致报错,但是只会在刚启动时报一次。只需要在调用dao前Thread.sleep(10000)睡眠十秒,等到线程池注册成功在进行dao操作。
情况二
在使用多数据源时,spring jdbctemplate + spring data jpa的情况下。为了防止事务有问题,proxool.xml下写了两个配置,一个给jdbc一个给jpa。当springdatajpa使用数据源时,总是会立马获取连接,原因不知道为什么。于是只能强制在加载org.springframework.web.context.ContextLoaderListener之前加载proxool。
原代码
<servlet>
<servlet-name>proxoolServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/classes/jdbcproxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <!--spring的监听器-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
改为
<!--proxool的ListenerConfigurator监听器用的参数-->
<context-param>
<param-name>proxoolConfigLocation</param-name>
<param-value>WEB-INF/classes/jdbcproxool.xml</param-value>
</context-param>
<!--proxool的监听器-->
<listener>
<listener-class>org.logicalcobwebs.proxool.configuration.ListenerConfigurator</listener-class>
</listener> <!--spring的监听器-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
ListenerConfigurator类需要自己新建
package org.logicalcobwebs.proxool.configuration; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.ProxoolFacade; import javax.servlet.ServletContextEvent;
import java.io.File;
import java.util.Properties;
/**
* proxool初始化*/
public class ListenerConfigurator implements
javax.servlet.ServletContextListener { private static final Log LOG = LogFactory
.getLog(ListenerConfigurator.class); private static final String XML_FILE_PROPERTY = "proxoolConfigLocation"; private boolean autoShutdown = true; public void contextInitialized(ServletContextEvent servletConfig) { String appDir = servletConfig.getServletContext().getRealPath("/"); Properties properties = new Properties();
String value = servletConfig.getServletContext().getInitParameter(
XML_FILE_PROPERTY);
LOG.debug("proxoolConfigLocation:"+value); try {
File file = new File(value);
if (file.isAbsolute()) {
JAXPConfigurator.configure(value, false);
} else {
LOG.debug(appDir + File.separator + value);
JAXPConfigurator.configure(appDir + File.separator + value,
false);
}
} catch (ProxoolException e) {
LOG.error("Problem configuring " + value, e);
}
if (properties.size() > 0) {
try {
PropertyConfigurator.configure(properties);
} catch (ProxoolException e) {
LOG.error("Problem configuring using init properties", e);
}
}
} public void contextDestroyed(ServletContextEvent s) {
if (autoShutdown) {
ProxoolFacade.shutdown(0);
}
}
}
连接池未注册org.logicalcobwebs.proxool.ProxoolException: Attempt to refer to a unregistered pool by its alias 'XXX'的更多相关文章
- paip.proxool连接池 :Attempt to refer to a unregistered pool by its alias 'xx'
paip.proxool连接池 :Attempt to refer to a unregistered pool by its alias 'xx' 作者Attilax 艾龙, EMAIL:146 ...
- Spring学习11-Spring使用proxool连接池 管理数据源
Spring 一.Proxool连接池简介及其配置属性概述 Proxool是一种Java数据库连接池技术.是sourceforge下的一个开源项目,这个项目提供一个健壮.易用的连接池,最为关键的是 ...
- Spring使用proxool连接池 管理数据源
一.Proxool连接池简介及其配置属性概述 Proxool是一种Java数据库连接池技术.是sourceforge下的一个开源项目,这个项目提供一个健壮.易用的连接池,最为关键的是这个连接池提供监控 ...
- proxool连接池 异常
这是第二次整理这个文章: 首先说明proxool连接池有两种配置方式: 第一种:采用jdbc.properties的方式 第二种:采用proxool.xml的配置方 后面在完善这两种配置方式(在上班哦 ...
- 【转】SSH中 整合spring和proxool 连接池
[摘要:比来做的一个项目中应用到了毗邻池技巧,大概我们人人比拟认识的开源毗邻池有dbcp,c3p0,proxool.对那三种毗邻池来讲,从机能战失足率来讲,proxool轻微比前两种好些.本日我首要简 ...
- 四个流行的Java连接池之Proxool篇
Proxool是一个JavaSQL Driver驱动程序,提供了对你选择的其它类型的驱动程序的连接池封装.可以非常简单的移植到现存的代码中.完全可配置.快速,成熟,健壮.可以透明地为你现存的JDBC驱 ...
- Java数据库连接池比较(c3p0,dbcp,proxool和BoneCP)
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp21 Java框架数据库连接池比较(c3p0,dbcp和proxool,Bo ...
- Tomcat 连接池详解
(转) JDBC 连接池 org.apache.tomcat.jdbc.pool 是Apache-Commons DBCP连接池的一种替换或备选方案. 那究竟为何需要一个新的连接池? 原因如下: Co ...
- hibernate+mysql的连接池配置
1:连接池的必知概念 首先,我们还是老套的讲讲连接池的基本概念,概念理解清楚了,我们也知道后面是怎么回事了. 以前我们程序连接数据库的时候,每一次连接数据库都要一个连接,用完后再释放.如果频繁的 ...
随机推荐
- flask实战-个人博客-数据库-生成虚拟数据 --
3.生成虚拟数据 为了方便编写程序前台和后台功能,我们在创建数据库模型后就编写生成虚拟数据的函数. 1)管理员 用于生成虚拟管理员信息的fake_admin()函数如下所示: personalBlog ...
- swiper使用总结-坑点汇总
1.开发中遇到个坑,ScrollableTabView(选项卡)+swiper(轮播图)在安卓下,初始化的第一页不会渲染,需要在ScrollableTabView挂载完毕后再渲染swiper. 解决方 ...
- ubuntu gitclone下载的文件放哪里了
在home主文件夹里面.
- el获取对象属性大小写问题
当el表达式首字母大写,会判断第二个字母大小写,小写,抛异常:大写,则直接拼接get,形成getter方法 当el表达式首字母小写,会判断第二个字母大小写,大写,必须第一个字母大写:否则无法获取值 e ...
- CentOS7.5 系统最小化安装与初始化配置
CentOS7.5 系统最小化安装与初始化配置 1.安装标准化的系统 1.1.系统安装期间的语言 选择:中文-简体中文,安装完成也会默认支持中文输出,便于管理 1.2.时区选择 亚洲上海,CST时区( ...
- (二)STM32开发例程
1控制LED和继电器 除了 PA11和PA12其他都可以 void setup() { pinMode(PC13, OUTPUT); pinMode(PC14, OUTPUT); pinMode(PC ...
- loj2245 [NOI2014]魔法森林 LCT
[NOI2014]魔法森林 链接 loj 思路 a排序,b做动态最小生成树. 把边拆成点就可以了. uoj98.也许lct复杂度写假了..越卡常,越慢 代码 #include <bits/std ...
- Android apps for “armeabi-v7a” and “x86” architecture: SoC vs. Processor vs. ABI
INSTRUCTION SET: Processors are made of semiconductor dies, usually electronic-grade mono-crystallin ...
- QuantLib 金融计算——收益率曲线之构建曲线(5)
目录 QuantLib 金融计算--收益率曲线之构建曲线(5) 概述 Nelson-Siegel 模型家族的成员 Nelson-Siegel 模型 Svensson 模型 修正 Svensson 模型 ...
- jquery插件实现瀑布流
jquery插件实现瀑布流<!DOCTYPE html><html lang="en"><head> <meta charset=&quo ...