实验目的:为了研究两个项目同时访问一个全局数据源的时候是创建了一个数据源对象,还是创建了两个数据源对象。
1:将diuid和mysql驱动包(druid-1.0.2.jar和mysql-connector-java-5.1.15.jar)copy至%TOMCAT_HOME%/lib下;
2:配置数据源,将JNDI在%TOMCAT_HOME%/conf/context.xml中配置好,格式如下:
<Resource
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
factory="com.alibaba.druid.pool.DruidDataSourceFactory"
maxActive="20"
maxIdel="10"
maxWait="1000"
name="jdbc/snf-paiDS"
password="adminone"
type="javax.sql.DataSource"
url="jdbc:mysql://10.27.82.169/pai?zeroDateTimeBehavior=convertToNull" />
<ResourceLink global="jdbc/snf-paiDS " name="jdbc/snf-paiDS" type="javax.sql.DataSource" />
3:在web.xml中配置druid的监控servletMapping:
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/console/*</url-pattern>
</servlet-mapping>
4:启动启动空的tomcat,如果启动成功,说明配置正确;
5:在eclipse中关联tomcat,(注意关联后的配置,应为已按上面步骤配置好的)。
6:创建一个空的项目,用来访问数据源。
7:新建一个servlet,并在web.xml中配好servletMapping,例如:
【JAVA代码:】
public class HoldConnection extends HttpServlet {
private static final long serialVersionUID = 1L;
private DataSource ds; //声明数据源
private List<Connection> c = new ArrayList<Connection>(); //存放连接,防止被垃圾回收器回收
public HoldConnection() {
super();
try {
Context ic = new InitialContext();
ds = (DataSource) ic.lookup("java:comp/env/jdbc/snf-paiDS");//访问JNDI
} catch (Exception e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try {
DruidPooledConnection conn = (DruidPooledConnection) ds.getConnection();//创建druid链接
DruidDataSource dds = (DruidDataSource) ds; //创建druid的数据源
c.add(conn);//放入list中,防止被回收
System.out.println(ds);
} catch (SQLException e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet( request, response);
}
}
【web.xml配置:】
<servlet>
<servlet-name>ds</servlet-name>
<servlet-class>com.suning.phl.dbcp.HoldConnection</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ds</servlet-name>
<url-pattern>/ds/*</url-pattern>
</servlet-mapping>
8:将项目发布到tomcat中启动;
9:访问HoldConnection;
10:访问druid控制台,查看数据源对象。
11:再新建一个项目,重复上面第6-8步;
12:重新访问两个项目中的HoldConnection(注意路径不要一样),然后再访问druid控制台,查看数据源对象,此时发现:创建了两个数据源对象,
由此可以得出结论,在容器中配置的数据源,通过不同的项目实例访问会创建不同的数据源对象。
假设:数据库的连接数最大值设置为1000,容器中的连接数配置为1000.如果只有一个实例访问数据源,那么是没有问题的。
假设有两个实例访问数据源,如果两个实例的总连接数之和大于1000,那么超出的部分是没办法进行数据库访问的。
案例如下:
相关推荐
TOMCAT连接池DBCP,在server.xml中配置全局数据源详细的介绍,很有好用啊!!
KETTLE 全局参数设定 设置一个全局使用的变量 全部的JOB 都可以使用
birt从配置文件读取数据源birt从配置文件读取数据源
内容概要:这是一个为Python的包管理工具pip配置全局镜像源的配置文件。通过使用此配置文件,用户可以轻松地将pip的默认源更改为清华大学的镜像源,从而加速包的下载和安装速度。 配合阅读:...
SpringBoot2实现tjta.atomikos.AtomikosDataSource分布式事务动态切换数据源
tomcat 下的全局和单个具体的应用数据源配置(有截图)
Tomcat6连接池 第一种配置方式:(局部数据源) 第二种配置方式:(全局数据源) 内含两个例子demo 及txt配置详细步骤 及使用的包
Springmvc +JNDI 在Tomcat下 配置数据源 ... 第二种:配置全局JNDI数据源,应用到单个应用 三、 数据源配置在Tomcat/conf/ context.xml 文件或者 server.xml 文件 中的区别 四、 常见的报错及解决方案
SpringBoot2 基础教程,日志配置,数据源配置,事务管理等。环境搭建和RestFul风格接口配置Log4j2,实现不同环境日志打印。配置系统全局异常映射处理。定时任务和异步任务的使用方式。多个拦截器配置和使用场景。...
因为涉及的数据相对比较多,我就将这个过滤器挂载到了全局,这样就不用再每个页面引用了。 转换代码实现 首先创建一个文件 numberToCurrency.js ,实现数字千位分隔符转换功能。 export function ...
决定引入 vuex 做全局数据源,再次重写。。。 样式都已经写好了。。。说多了都是泪。。。 预览如图: resume-generator3.0 不断的遇到新的问题啊。。。说啥也不重写了,吸取前两版的教训,使用 vue-router 和 vuex ...
简洁高效,利用全局键盘钩子监听键盘输入,在钩子回调函数中利用时间差判断输入字符的连续性来区别扫描枪输入,相关文章在本人博客
但是现在 spring boot 应用中引入了很多第三方 starter ,比如 druid-spring-boot-starter 数据源注入、spring-boot- starter-data-redis 缓存等默认情况下, 引入即注入了相关 bean 我们无法去修改添加 @Lazy 。
通过本体抽取和本体合并分别构造数据源局部本体和全局本体实现基于语义的数据访问视图,并利用全局本体、局部本体和数据源模式之间的映射关系,将基于语义的查询转换为底层数据源的访问请求,提供统一、透明的数据...
基于中间模式的数据集成系统架构 虚拟集成系统主要使⽤中间模式建⽴全局数据的逻辑视图,为异构数据源提供⾼层次的数据访问服务。 数据库:提供数据,独⽴性强 封装器: 负责把上层⽤户的查询转发到数据源,并把...
1、基于yml 配置方式 ,实现springBoot+sharding-jdbc+mybatis-plus 实现分库分表,读写分离,以及全局表,子表的配置。 2、实现mybatis-plus 整合到springboot 详细使用请看 测试用例
在Vue项目开发中,肯定会有这样一个场景:在不同的组件页面用到同样的方法,比如格式化时间,文件下载,对象深拷贝,返回数据类型,复制文本等等。这时候我们就需要把常用函数抽离出来,提供给全局使用。那如何...
气田信息整合旨在实现自治、分布、异构数据源的信息共享与交换,为用户提供统一的全局数据视图。讨论了企业信息整合系统的一般模式;根据气田信息中历史数据、实时数据、静态数据的不同应用特点,提出了一种基于虚拟...