validationquery,oracle 17410什么错
validationquery,oracle 17410什么错详细介绍
本文目录一览: 用jmeter做oracle数据库测试时,JDBC配置正确,输入语句,执行报错。
修改JDBC Connection Configuration配置中的Validation Query的值为:Select 1 from dual
1
先进行选中测试计划,然后依次选择为添加》》配置元件》》jdbc connection configuration的选项。
2
添加完成之后,在database connection configuration中进行连接配置oracle的链接,如图所示。
3
然后进行添加》》sampler》》jdbc request的选项。
4
然后在query中编写需要对数据库操作的语句内容。
5
添加结果监听器,添加》》监听器》》察看结果树的选项。
6
进行运行测试计划之后,可以看到的是运行的结果的内容的信息,来判断运行的是否成功。
配置SQL Server 2000数据库连接池时,属性validationQuery默认值为“select 1”,
而在Oracle数据库连接池中应设置为“validationQuery="select 1 from dual"”
在JDBC Connection Configuration中修改validation Query
spring中怎么配置validationquery
代码如下:
classpath:jdbc.properties
properties配置如下: Java代码 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:1433/mmusic jdbc.username=root jdbc.password= jdbc.maxActive=20 jdbc.maxIdle=15 jdbc.minIdle=10 jdbc.initialSize=15 jdbc.testOnBorrow=true jdbc.validationQuery=select 1 jdbc.validationQueryTimeout=20 还有一种配置: Java代码 < beans> < bean id="configproperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> < property name="location" value="file:config.properties"/> < /bean> < bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> < property name="properties" ref="configproperties"/> < /bean>
1、配置dataSource 2、配置事务管理器,注入datasource 3、使用注解方式(参考tx命名空间和@Transaction注解)或者编程方式 编程(伪): WebApplicationContext ac; PlatformTransactionManager ptm = (PlatformTransactionManager) ac.getBean
1、配置dataSource
2、配置事务管理器,注入datasource
3、使用注解方式(参考tx命名空间和@Transaction注解)或者编程方式 编程(伪): WebApplicationContext ac; PlatformTransactionManager ptm = (PlatformTransactionManager) ac.getBean
Druid连接池及监控在Spring配置如下:
[html] view plaincopy
2. 只要配置initialSize,maxActive就可以,目前这样的配置已经能够使用连接池,加入其实配置性能不好,官方文档里也不没加其它属性,连接池jar包免费下载。
然后是监控的配置:
web.xml
[html] view plaincopy
DruidWebStatFilter
com.alibaba.druid.support.http.WebStatFilter
exclusions
*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
DruidWebStatFilter
/*
filter可以监控webURl 访问
[html] view plaincopy
DruidStatView
com.alibaba.druid.support.http.StatViewServlet
DruidStatView
/druid/*
spring中怎么配置validationquery
1、配置dataSource
2、配置事务管理器,注入datasource
3、使用注解方式(参考tx命名空间和@Transaction注解)或者编程方式
编程(伪):
WebApplicationContext
ac;
PlatformTransactionManager
ptm
=
(PlatformTransactionManager)
ac.getBean
1、配置dataSource
2、配置事务管理器,注入datasource
3、使用注解方式(参考tx命名空间和@Transaction注解)或者编程方式
编程(伪):
WebApplicationContext
ac;
PlatformTransactionManager
ptm
=
(PlatformTransactionManager)
ac.getBean
invalid oracle validationQuery. select 'x', may should be :select 'x' FROM DUAL
出现这个报错的话,请大家注意yml中的配置
spring:
datasource:
? ? url: jdbc:oracle:thin:@
? ? username:
password:
? ? driver-class-name:oracle.jdbc.OracleDriver
? ? filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x' from dual? ? ? //关键是这一行? mysql的话是select ‘x’ oracle则是select ‘x’ from dual
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
使用druid,启动时报错 validateConnection false
看看你是链接的什么数据库,修改成该数据库的一个正确的查询语句试试
这句话没有执行成功。这写法顶多是mysql能成功,你如果是oracle,要写一个oracle能通过的语句,比如select count(*) from xxx
连mysql时dbch,validationquery怎么配置value=select count from dual
连mysql时dbch,validationquery怎么配置value="select count from dual
看看你是链接的什么数据库,修改成该数据库的一个正确的查询语句试试
阿里巴巴数据源Druid使用时报discard connection异常,为什么
2014-11-06 22:36:28,537 ERROR [com.alibaba.druid.pool.DruidDataSource] - discard connection
com.mysql.jdbc.CommunicationsException: The last communications with the server was 28816 seconds ago, which is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
配置了testWhileIdle=true,validationQuery=SELECT 'x'
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=300000
oracle 17410什么错
应该是数据库连接不正常导致的,
排查原因:
网络问题,内网之中访问,无防火墙,不是网络原因。
网上说是Oracle 版本的Bug,经分析,Oracle相关的bug不会影响到现在的Oracle版本,不是版本bug原因。
JDBC版本原因,可能会是该原因导致的,遂将JDBC的版本升级到和Oracle版本相符的版本,但是问题依然存在。
在绝望是时候突然想到,生产的Oracle和测试的Oracle唯一的区别是:生产的Oracle对长期闲置的数据库连接会自动断开,而我们系统使用的数据库连接池是Apache的DBCP的BasicDataSource连接池。
于是就在本地的Oracle中修改idle_time参数为一分钟,测试,果然出现了同样的问题,问题的根源找到,但是如何解决呢?
现在问题是:Oracle将数据库连接断开了,但是连接池却认为该连接是可以用的,就将该连接分配给了应用程序使用,连接池和应用程序在分配和使用该连接之前没有校验数据库连接的可用性。
查看DBCP的文档和源码,发现有这4个属性可以用:
validationQuery属性,将从连接池中获取的数据库连接返回给调用者之前,通过这个sql查询判断其有效性, 如果设置,这个查询sql必须至少有一条数据 ,可将该属性设为select 1 from dual
testOnBorrow属性,确定从连接池中获取的对象是否有效,如果无效从连接池移除,然后尝试下一个对象,这个属性默认为true,可以不设置
testOnReturn属性,放回连接池之前判断对象是否有效,这个属性默认为false,建议设为true
testWhileIdle属性,通过空闲对象驱逐器判断对象是否有效,如果无效从连接池移除,默认为false。
至此,增加这些属性之后,连接池的配置如下
<bean
>
classpath:jdbc.properties
<bean
destroy-method="close">
${jdbc.driverClassName}
${jdbc.url}
${jdbc.username}
${jdbc.password}
20
3
-1
false
select 1 from dual
true
true
true
在生产上测试,问题得到解决。
</bean
</bean
关于spring集成mybatis如何实现mysql数据库读写分离的实例分析
本文通过实例代码给大家介绍了spring集成mybatis实现mysql数据库读写分离,需要的朋友可以参考下前言 在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。幸运的是目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上。网站利用数据库的这一功能,实现数据库读写分离,从而改善数据库负载压力。如下图所示:应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库,这样当应用服务器读数据的时候,就可以通过从数据库获得数据。为了便于应用程序访问读写分离后的数据库,通常在应用服务器使用专门的数据库访问模块,使数据库读写分离对应用透明。 而本博客就是来实现“专门的数据库访问模块”,使数据库读写分离对应用透明。另外,mysql数据库的主从复制可以参考我的mysql5.7.18的安装与主从复制。注意,数据库实现了主从复制,才能做数据库的读写分离,所以,没有实现数据库主从复制的记得先去实现数据库的主从复制配置读写数据源(主从数据库) mysqldb.properties#主数据库数据源jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://192.168.0.4:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=falsejdbc.username=rootjdbc.password=123456jdbc.initialSize=1jdbc.minIdle=1jdbc.maxActive=20jdbc.maxWait=60000jdbc.removeAbandoned=truejdbc.removeAbandonedTimeout=180jdbc.timeBetweenEvictionRunsMillis=60000jdbc.minEvictableIdleTimeMillis=300000jdbc.validationQuery=SELECT 1jdbc.testWhileIdle=truejdbc.testOnBorrow=falsejdbc.testOnReturn=false#从数据库数据源slave.jdbc.driverClassName=com.mysql.jdbc.Driverslave.jdbc.url=jdbc:mysql://192.168.0.221:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=falseslave.jdbc.username=rootslave.jdbc.password=123456slave.jdbc.initialSize=1slave.jdbc.minIdle=1slave.jdbc.maxActive=20slave.jdbc.maxWait=60000slave.jdbc.removeAbandoned=trueslave.jdbc.removeAbandonedTimeout=180slave.jdbc.timeBetweenEvictionRunsMillis=60000slave.jdbc.minEvictableIdleTimeMillis=300000slave.jdbc.validationQuery=SELECT 1slave.jdbc.testWhileIdle=trueslave.jdbc.testOnBorrow=falseslave.jdbc.testOnReturn=false主、从数据库的地址记得改成自己的,账号和密码也需要改成自己的;其他配置项,大家可以酌情自行设置 mybatis-spring.xml
AOP实现数据源的动态切换DataSource.javapackage com.yzb.util;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * RUNTIME * 编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取。 * */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface DataSource{ String value();}DataSourceAspect.javapackage com.yzb.util;import java.lang.reflect.Method;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.reflect.MethodSignature;public class DataSourceAspect{ /** * 在dao层方法获取datasource对象之前,在切面中指定当前线程数据源 */ public void before(JoinPoint point) { Object target = point.getTarget(); String method = point.getSignature().getName(); Class<
springmvc+mybatis maven配置 一般用什么连接池配置
springmvc+mybatis maven配置 一般连接池配置:
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<!-- <property
name="maxPoolPreparedStatementPerConnectionSize" value="33" /> -->
<!-- -->
<!-- -->