数据源出现长时间没有使用中断后。出现Could not close JDBC Connection这种问题。
解决方案:
将testOnBorrow设置为true而validationQuery没有设置,或为空,或你给的不是一个select语句且没有数据返回。testOnBorrow也是白设。validationQuery这个的SQL语句一般查询dual表.常用的有SELECT 1 FROM DUA
修改后的tomcat JNDI配置如下:
<?xml version='1.0' encoding='utf-8'?>
<Context allowLinking="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/tx" auth="Container" type="javax.sql.DataSource"
username="xxx"
password="xxx"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@xxx.xx.xx.xx:1521:xx"
maxActive="500"
maxIdle="10"
maxWait="120000"
validationQuery="SELECT 1 FROM DUAL"
/>
</Context>
-
sql数据源名称过长_BI工具入门:如何做关系数据源的连接?
2020-11-29 11:29:53大家跟着步骤操作也有些二丈摸不着头脑,看来简单的操作步骤和功能概念还是有必要普及的,那今天就来说一点简单的入门操作知识,以Smartbi为例子,跟大家说说BI工具的关系数据源连接。关系数据源连接是指通过...以往咱们分享的操作步骤都稍微有些复杂,大家跟着步骤操作也有些二丈摸不着头脑,看来简单的操作步骤和功能概念还是有必要普及的,那今天就来说一点简单的入门操作知识,以Smartbi为例子,跟大家说说BI工具的关系数据源连接。关系数据源连接是指通过“数据库驱动程序”连接一个本地或远程的关系数据库。
第一步:找到操作入口
1、可以选择系统导航栏的 数据连接,或者选择系统快捷菜单 数据连接 ,如图:
2、在“数据连接”界面主菜单选择 关系数据库 下的关系数据源 ,如图:
第二步:界面介绍
我们在新建关系数据源或是打开数据源,可以看到下面如图的连接信息。
一些重要的配置项说明如下:
驱动程序存放目录:驱动程序存放目录分为“产品内置”和“自定义”。默认为“产品内置”。
驱动包使用的优先级逻辑如下:
1)不选驱动程序存放目录/驱动程序存放目录选择“产品内置”:系统自动从“产品内置”去寻找驱动。
2)驱动程序存放目录选择“自定义”,没指定“自定义目录”:系统默认先去“自定义”寻找驱动,找不到再去“产品内置”寻找驱动。
3)驱动程序存放目录选择“自定义”,并指定“自定义目录”:系统默认先去“自定义目录”寻找驱动,找不到再去“自定义”寻找驱动,再找不到再去“产品内置”寻找驱动。
其中,各目录路径如下:
产品内置:【SmartbiTomcatwebappssmartbiWEB-INFlib】
自定义自定义目录:【SmartbiTomcatindynamicLibraryPath】
连接字符串:用户选择好连接的数据库的类型后,系统自动生成相应的连接字符串,用户需要把其中的“”和“”分别换成连接数据源所在的服务器和数据库的名称。
验证类型:用于设置用户名和密码的验证类型,包含两种静态和动态。
静态:输入连接数据库的用户名和密码。
动态:如要用于连接的用户名和密码是根据登录的用户而动态变化。比如Oracle数据库,不同的用户名对数据库的表的权限是不一样的。选择动态的验证类型,需要从左侧资源树下拖拽“系统函数”或是“用户属性”来作为表达式,实现不同的用户登录设置连接数据库的用户名和密码是动态变化的。
高级中的校验语句:数据源连接进行校验的SQL语句。包含下面几种方式,默认为获取连接时测试。
若有不清楚,请到官网查看详细的配置项说明。设置好数据源连接的配置项后,必须要先进行 测试连接 操作,只有在测试连接通过后才允许保存填写完。
关系数据源连接成功后,即在资源目录区的“数据源”节点下显示出该关系数据源的内容。如下图:
驱动程序类型
驱动程序类型是指用户选择连接的数据库的类型。
为了便于检查数据源连接方面的问题,下面列出部分需注意的关系数据库对应的JDBC驱动的jar文件名:
l SQL Server的Jar包名称有sqljdbc.jar、msbase.jar、mssqlserver.jar;
l Oracle的Jar包名称有Classes12.zip、classes12.jar;
l Db2的Jar包名称有db2java.zip、db2java.zip、db2jcc_license_cu.jar;
l sybase的Jar包名称有jconn2d.jar;
l informix的Jar包名称有ifxjdbc.jar;
字符集
目前在进行数据源设置的时候可以指定数据库源字符集和数据库目标字符集。一般情况下不需要设置,只有在数据库展示出现乱码的时候,才有可能需要对这些数据集进行设置。
数据源字符集:在获取数据库数据时,指定数据库的字符集。一般为数据库的字符集。
数据源目录字符集:当出现乱码时,目标字符集和数据库本身的编码组合测试,直到找不到不乱码的组合。
了解一些关键点后,再链接数据源是不是超级简单?按照自有的资源选择数据库或者数据源连接导入就可以了!其他工具我不知道,但Smartbi这款工具挺实用的,复杂表格,领导驾驶舱,大屏展示,图文日常报告,拖拽分析应用。还有一些数据处理的功能,应用场景丰富。先处理数据,再分析应用数据,数据有问题可以手动修改,应用流程比较通畅。
-
sql数据源名称过长_BI工具入门教程:如何做关系数据源的连接?
2020-12-06 00:23:44大家跟着步骤操作也有些二丈摸不着头脑,看来简单的操作步骤和功能概念还是有必要普及的,那今天就来说一点简单的入门操作知识,以Smartbi为例子,跟大家说说BI工具的关系数据源连接。关系数据源连接是指通过...以往咱们分享的操作步骤都稍微有些复杂,大家跟着步骤操作也有些二丈摸不着头脑,看来简单的操作步骤和功能概念还是有必要普及的,那今天就来说一点简单的入门操作知识,以Smartbi为例子,跟大家说说BI工具的关系数据源连接。关系数据源连接是指通过“数据库驱动程序”连接一个本地或远程的关系数据库。
第一步:找到操作入口
1、可以选择系统导航栏的 数据连接,或者选择系统快捷菜单 数据连接 ,如图:
2、在“数据连接”界面主菜单选择 关系数据库 下的关系数据源 ,如图:
第二步:界面介绍
我们在新建关系数据源或是打开数据源,可以看到下面如图的连接信息。
一些重要的配置项说明如下:
驱动程序存放目录:驱动程序存放目录分为“产品内置”和“自定义”。默认为“产品内置”。
驱动包使用的优先级逻辑如下:
1)不选驱动程序存放目录/驱动程序存放目录选择“产品内置”:系统自动从“产品内置”去寻找驱动。
2)驱动程序存放目录选择“自定义”,没指定“自定义目录”:系统默认先去“自定义”寻找驱动,找不到再去“产品内置”寻找驱动。
3)驱动程序存放目录选择“自定义”,并指定“自定义目录”:系统默认先去“自定义目录”寻找驱动,找不到再去“自定义”寻找驱动,再找不到再去“产品内置”寻找驱动。
其中,各目录路径如下:
产品内置:【SmartbiTomcatwebappssmartbiWEB-INFlib】
自定义自定义目录:【SmartbiTomcatindynamicLibraryPath】
连接字符串:用户选择好连接的数据库的类型后,系统自动生成相应的连接字符串,用户需要把其中的“<servername>”和“<database>”分别换成连接数据源所在的服务器和数据库的名称。
验证类型:用于设置用户名和密码的验证类型,包含两种静态和动态。
静态:输入连接数据库的用户名和密码。
动态:如要用于连接的用户名和密码是根据登录的用户而动态变化。比如Oracle数据库,不同的用户名对数据库的表的权限是不一样的。选择动态的验证类型,需要从左侧资源树下拖拽“系统函数”或是“用户属性”来作为表达式,实现不同的用户登录设置连接数据库的用户名和密码是动态变化的。
高级中的校验语句:数据源连接进行校验的SQL语句。包含下面几种方式,默认为获取连接时测试。
若有不清楚,请到官网查看详细的配置项说明。设置好数据源连接的配置项后,必须要先进行 测试连接 操作,只有在测试连接通过后才允许保存填写完。
关系数据源连接成功后,即在资源目录区的“数据源”节点下显示出该关系数据源的内容。如下图:
驱动程序类型
驱动程序类型是指用户选择连接的数据库的类型。
为了便于检查数据源连接方面的问题,下面列出部分需注意的关系数据库对应的JDBC驱动的jar文件名:
l SQL Server的Jar包名称有sqljdbc.jar、msbase.jar、mssqlserver.jar;
l Oracle的Jar包名称有Classes12.zip、classes12.jar;
l Db2的Jar包名称有db2java.zip、db2java.zip、db2jcc_license_cu.jar;
l sybase的Jar包名称有jconn2d.jar;
l informix的Jar包名称有ifxjdbc.jar;
字符集
目前在进行数据源设置的时候可以指定数据库源字符集和数据库目标字符集。一般情况下不需要设置,只有在数据库展示出现乱码的时候,才有可能需要对这些数据集进行设置。
数据源字符集:在获取数据库数据时,指定数据库的字符集。一般为数据库的字符集。
数据源目录字符集:当出现乱码时,目标字符集和数据库本身的编码组合测试,直到找不到不乱码的组合。
了解一些关键点后,再链接数据源是不是超级简单?按照自有的资源选择数据库或者数据源连接导入就可以了!其他工具我不知道,但Smartbi这款工具挺实用的,复杂表格,领导驾驶舱,大屏展示,图文日常报告,拖拽分析应用。还有一些数据处理的功能,应用场景丰富。先处理数据,再分析应用数据,数据有问题可以手动修改,应用流程比较通畅。
-
springboot 长连接_Springboot如何自动加载数据源
2020-12-09 00:26:09Springboot应用程序中数据源(Datasource)的加载有两种方式,一是手动创建一个Datasource,二是根据properties或者yml配置文件自动加载Datasource。这里重点关注Springboot是如何自动加载Datasource的。本文...Springboot应用程序中数据源(Datasource)的加载有两种方式,一是手动创建一个Datasource,二是根据properties或者yml配置文件自动加载Datasource。这里重点关注Springboot是如何自动加载Datasource的。本文Springboot的版本为2.3.5。
spring-boot-autoconfigure
Springboot的自动装配依赖注解EnableAutoConfiguration,关于这个的源码分析后续再说,这里不是重点。简单说就是:如果配置了EnableAutoConfiguration注解,Springboot会扫描项目依赖包下是否包含spring.factories文件,如果包含则加载文件中配置的对应的类,这就是Springboot自己实现的SPI机制,关于SPI机制,以后再说。在Springboot应用程序中的启动类的注解@SpringBootApplication包含了EnableAutoConfiguration注解,所以会扫描依赖查找spring.factories文件。spring-boot-autoconfigure包故名思义就是负责自动配置,在这个包META-INF目录下面可以找到一个spring.factories,文件太长,我截取一部分入下:
spring.factories
配置文件中的类会被加载,这里我们重点关注DataSourceAutoConfiguration,从名字看出来,它主要负责数据源自动配置。
DataSourceAutoConfiguration
源码比较长,先看下类上的几个注解:
DataSourceAutoConfiguration
@Configuration(proxyBeanMethods = false)
@Configuration这个注解比较常见,标识了这个类可以被扫描,proxyBeanMethods这个属性用来制定这个类中被@Bean注解标注的方法是否使用代理,当为true时,直接从IOC容器之中取得对象,当为如果设置为false,也就是不使用注解,每次调用@Bean标注的方法获取到的对象和IOC容器中的都不一样,是一个新的对象。
@ConditionalOnClass({DataSource.class, EmbeddedDatabaseType.class})
这个注解表示,只有当Datasource,EmbeddedDatabaseType这两个类对应的Bean不存在时才DataSourceAutoConfiguration会被实例化到容器中。这个类本来就是要做数据源配置的,如果存在上述的两个Bean,那么说明数据源已经存在,不需要配置了。
@ConditionalOnMissingBean(type = {"io.r2dbc.spi.ConnectionFactory"})
这个朱标表示,只有不存在io.r2dbc.spi.ConnectionFactory类型的Bean时这个类才会被实例化到容器中。r2dbc是一种异步的、非阻塞的关系式数据库连接规范。也就是说只有在采用JDBC规范的情况下才会实例化这个配置类。
@EnableConfigurationProperties({DataSourceProperties.class})
这个配置会将properties或者yml中的配置映射到DataSourceProperties中,并将DataSourceProperties实例化为一个Bean。
DataSourceProperties部分源码如下:
DataSourceProperties
@ConfigurationProperties(prefix = "spring.datasource")可以将配置文件中前缀为spring.datasource的属性映射到对应的DataSourceProperties属性中。
@Import({DataSourcePoolMetadataProvidersConfiguration.class, DataSourceInitializationConfiguration.class})
将DataSourceInitializationConfiguration和DataSourcePoolMetadataProvidersConfiguration实例化为Bean交给IOC容器管理。
DataSourceAutoConfiguration主要实现了五个功能:
1.初始化DataSourceProperties实例
将配置文件属性映射到DataSourceProperties中,这个功能上面已经介绍
2.检测并配置内置数据库,例如H2,DERBY,HSQL等
这个功能具体实现源码如下:
EmbeddedDatabaseConfiguration
@Conditional({DataSourceAutoConfiguration.EmbeddedDatabaseCondition.class})这个注解比较重要,EmbeddedDatabaseCondition继承了SpringBootCondition,SpringBootCondition是一个模板类,继承它后,只需要实现核心的getMatchOutCome()方法来自定义一个 Condition 类。当这个类被@Conditional 注解引入的时候,最终时候执行这个核心方法来判断是否匹配的。在这里这个注解主要用来判断是否使用内置数据库,如果使用则引入内置数据库配置类EmbeddedDataSourceConfiguration。
其他几个注解上面已经涉及到,这里就不再赘述。
3.数据源配置
数据源配置相关源码如下:
PooledDataSourceConfiguration
这里的@Conditional({DataSourceAutoConfiguration.PooledDataSourceCondition.class})注解和上文类似,如果满足1.有spring.datasource.type属性 2.PooledDataSourceAvailableCondition:项目中引入了数据源依赖,这两个条件中的任意一个则按顺序解析@Import({Hikari.class, Tomcat.class, Dbcp2.class, Generic.class, DataSourceJmxConfiguration.class})中的几个类。例如导入Hikari.class,则会实例化对应的Datasource,即产生一个Datasource类型的Bean。
4. DataSourceInitializationConfiguration配置
主要负责自动运行sql文件
只要在资源路径中添加 schema.sql 和 data.sql 文件,springboot 在运行的时候就会自动关联数据库创建相应的表和数据。
具体由DataSourceInitializationConfiguration这个类实现,核心是其中的@Import({DataSourceInitializerInvoker.class, DataSourceInitializationConfiguration.Registrar.class})中的DataSourceInitializerInvoker,这类有一个方法afterPropertiesSet(),源码如下:
DataSourceInitializerInvoker
其中createSchema()方法负责查找并执行schema.sql脚本,initialize(initializer)方法负责查找并执行data.sql脚本。
5.DataSourcePoolMetadataProvidersConfiguration配置
主要用户获取内置数据源状态,这里不再赘述。
以上就是DataSourceAutoConfiguration配置类的主要功能,它负责了数据源的实例化,最终生成一个Datasource 类型的Bean加载到IOC容器中。
-
tomcat 数据源连接长时间未使用导致无法访问
2014-07-24 16:31:00数据源出现长时间没有使用中断后。出现Could not close JDBC Connection这种问题。 解决方案: 将testOnBorrow设置为true而validationQuery没有设置,或为空,或你给的不是一个select语句且没有数据返回。...转载于:https://www.cnblogs.com/xuruhong/p/3865941.html
-
顶部 数据源 amp 数据 连接性 景观 我
2015-07-31 20:57:36这些结果验证了我们在SaaS数据源中看到的爆炸性增长,以及在混合环境中尝试连接数据时面临的常见挑战。 我们在之前的一篇博文中介绍了其中的一些结果,您数据库同步软件 可以查看下面的信息图以了解主要发现(点击... -
BoneCp连接池数据源报错排查
2020-06-17 09:59:07在Sparksql中使用了BonCp连接池,在使用过程中需要json文件配置数据源;如果数据源配置出错会出现空指针异常,排查了好长时间,特此记录一下 报错现象:空指针异常 二、解决方法 排查sink端的数据源,看看数据... -
DBCP数据源配置,数据源长时间不使用出现Could not close JDBC Connection
2014-12-05 16:39:24数据库连接池中总会保持有minIdle这个数目的连接,这里的连接如果长时间不使用就会有可能断开。...3.防火墙问题,防火墙可能会关闭长时间连接,但没有数据流的连接。 出现的异常有:Could not close JD... -
数据源 java_Java数据源简介
2021-03-07 08:11:57在数据源中存储了所有建立数据库连接的信息。如果把数据比作水,数据库就是水库,数据源就是水管。数据源包含连接池和连接池管理两部分。连接池如果不使用连接池,每次进行数据库访问都需要向数据库获取连接get... -
Java中用动态代理实现标准的DataSource数据源连接池
2017-12-24 17:46:58首先简单谈谈为什么要用连接池? 大家知道,我们平常连接...都去重新建立并获取新的连接,会浪费大量的资源和时间,此时客户端的响应时间肯定会较长,这并不是我们想看到的。因此这时候我们就要想办法避免这种现... -
boot druid 长时间不连接 异常_Spring Boot学习:如何使用Druid数据源
2021-01-10 02:17:21Druid概述Druid是阿里巴巴开源的一款非常优秀的数据库连接池。在Java应用程序开发中,常用的连接池还有DBCP、C3P0、Proxool等。SpringBoot2.X 版本开始默认的是HikariCP(号称性能最好的数据库连接池),Druid性能好... -
大白话聊懂Java中的连接池,用包装模式实现标准的DataSource数据源连接池
2021-04-03 10:24:10铁子们,快扫码关注啦!或 wx搜索:“聊5毛钱的java”,关注可领取博主的...都去重新建立并获取新的连接,会浪费大量的资源和时间,此时客户端的响应时间肯定会较长,这并不是我们想看到的。因此这时候我们就要想办.. -
重做:使您的公司数据驱动。 连接到任何数据源,轻松可视化,仪表板并共享数据-源码
2021-02-03 14:16:11Redash旨在使任何人,无论技术水平如何... 对数据源的广泛支持:可扩展的数据源API,具有对一长串常见数据库和平台的本机支持。 入门 (包括指向现成的AWS / GCE映像的链接)。 。 支持的数据源 Redash支持超过35种SQ -
boot druid 长时间不连接 异常_SpringBoot+Mybatis+druid 多数据源配置
2021-01-15 10:59:49数据源(一)DruidDatasourceConfig.java package com.huifu.myeinsole.dal;import com.alibaba.druid.pool.DruidDataSource;import com.github.pagehelper.PageInterceptor;import org.apache.ibatis.plugin.... -
数据库连接池(数据源)
2018-08-21 09:56:31应用程序直接获取数据库连接缺点:用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费... -
一文读懂java之数据库连接池(数据源)
2019-12-24 21:01:14也就是数据源(DataSource),数据库连接池中可以预先创建若干数据连接对象,然后在使用的时候即可快速从池中得到数据库连接,无需再去创建,提高使用效率,节省系统开销,当连接使用完成后,调用close方法不在关闭... -
sql数据源名称过长_第007课:SpringBoot MyBatis多数据源配置
2020-12-05 04:36:411. Druid介绍Druid 是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和 SQL 解析器组成。该项目主要是为了扩展 JDBC 的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计 ... -
JBoss 中配置数据源(datasource)连接池
2017-07-09 11:59:32但是我们知道连接池是有上限的,如果只允许我们放10个,那么当这10个连接都被占用的时候,下一个用户再来请求连接将不能得到,只好等待,如果等的时间太长了就会抛出timeout的异常.使用完连接后要释放,否则 -
BW作为源系统连接时,激活DSO或其他模型时提示8*数据源不存在,无法激活
2012-10-26 17:36:00在网上搜了很长时间,没找着相关的解决文档,后来在BW系统点进源系统看了下,发现BW系统下面挂的都不是我们自己的数据源,而是BPC系统的 数据源。系统在连接的时候自动把BW系统转换成目标系统了。 找到BASIS,BASIS... -
weblogic 更改非活动连接超时_weblogic数据源优化调整记录
2021-03-07 07:37:40一:解决数据源一段时间后不可用问题前的观察和分析:1.1.开始时连接池各项属性的配置信息:初始容量: 要在创建连接池时创建的物理连接数。更多信息...最大容量: 此连接池可容纳的最大物理连接数。更多信息...容量... -
01_数据库连接池,数据源,ResultSetMetaData,jdbc优化
2014-12-08 21:49:15传统的开发模式下,Servlet处理用户的请求,找Dao查询数据,dao会创建与数据库之间的连接,完成数据查询后会关闭数据库的链接。 这样的方式会导致用户每次请求都要向数据库建立链接而数据库创建连接通常需要消耗... -
U852客户端登陆报错:数据源名称过长
2016-06-16 15:54:00问题现象:U852客户端安装后运行提示[Microsoft][ODBC 驱动程序管理器] 数据源名称过长 不能与服务器连接请选择其他服务器 问题原因:服务器打了852hotfix补丁,而客户端没打解决办法:打补丁即可 -
c mysql 数据源_mysql 使用c API连接数据库
2021-01-19 02:31:54今天费了好长时间终于让C操作MYSQL成功了,在此把方法记下来,留着以后用。hoho~先安装mysql代码:sudo apt-get install mysql-server mysql-client再装开发包代码:sudo apt-get install libmysqlclient15-dev安装完... -
ESB v6.6,Governor使用weblogic12c自带数据源,部署和卸载服务连接不释放的问题
2017-04-07 09:31:58问题描述:Governor部署采用weblogic 12c,在使用weblogic数据...解决办法:该问题是由于weblogic默认的非活动连接超时时间为0(0表示连接时间无限长),导致服务被卸载以后,weblogic的数据源连接池不自动释放连接引起 -
tomcat5.5.28+admin+serverlet配置数据源连接池
2010-04-11 18:35:00留个脚印,说不定哪里又忘了,这个东西,时间长了不用,到时又不记得了,记下来,将来或许还用得着,也给后人参考.那就从头开始吧首先要准备admin插件,tomcat5好像没有将admin集成进tomcat了,而是作为插件了.输入:... -
(MYSQL)数据源 (ODBC)时不能连接到数据库服务器
2013-09-03 14:13:44在控制面板→管理工具中 对数据源 (ODBC)进行配置, 不能连接到服务器上的MYSQL数据库 长时间无反映 见下图, 如何处理呢 在服务器MYSQL数据库中 接下去就可以进行下面的操作了 -
Loadrunner参数化连接oracle、mysql数据源报错记录及解决办法
2015-06-02 14:57:12本人是刚开始学习Loadrunner的小白,本文是根据自身实际情况写的经验分享,内容可能不是很完善,还请谅解,自己解决这个问题浪费了很长时间,所以希望新人可以参考解决办法,省去不必要的麻烦! -
如何正确选择电源连接器
2021-01-20 06:00:39要正确使用这数据,除了须了解其测试方法,也须留意其测试环境。例如:有些单纯测试一对相接却没有安装在外壳内的母端子及公针。众所周知,影响连接器的升温的因素,包括接触电阻、电流量及散热渠道。在实际应用时,... -
python连接kafka长时间_Alink连接Kafka数据源(Python版本)
2021-02-04 16:34:17Alink是基于Flink的机器学习算法平台,欢迎访问Alink的github获取下载链接及更多信息。...本文主要讨论如何使用Alink的Kafka连接组件(Kafka011...如何你需要一个本地的Kafka数据源进行实验,可以参考我另外一篇文章,... -
DBCP数据源配置,数据源时间不使用出现Could not close JDBC Connection
2014-09-23 16:32:31数据库连接池中总会保持有minIdle这个数目的连接,这里的连接如果长时间不使用就会有可能断开。...3.防火墙问题,防火墙可能会关闭长时间连接,但没有数据流的连接。 出现的异常有:Could not close JD