`

WAS上数据库连接池中获取的数据库连接失效,已经失效(Websphere)

 
阅读更多
在系统日志中找到下面的错误日志:
2014-10-24 10:25:00.508 [mqTaskExecutor-19] ERROR o.s.t.i.TransactionInterceptor -Application exception overridden by rollback exception
org.springframework.dao.DataAccessResourceFailureException: PreparedStatementCallback; SQL [INSERT INTO RE_CORDEROPERATE 			( 				OPERATESTATUS, 				operatetime, 				operatedesc, 				b2citemno, 				SUPPLIERCODE, 				EXCEPTIONDESC, 				OPERATEEMPLOYEE, 				CREATETIME	   			) 			VALUES 			( 			     				?, 				 				 				?, 				 				 				?, 				 				 				?, 				 				 				?, 				 				 				'', 				 				 				?, 				 				CURRENT_TIMESTAMP 			)]; The last packet successfully received from the server was 46,677,980 milliseconds ago.  The last packet sent successfully to the server was 46,677,981 milliseconds ago. 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.; nested exception is com.ibm.websphere.ce.cm.StaleConnectionException: The last packet successfully received from the server was 46,677,980 milliseconds ago.  The last packet sent successfully to the server was 46,677,981 milliseconds ago. 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.
	at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:104) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:603) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:812) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:834) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:260) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:264) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at com.suning.framework.dal.client.support.executor.MappedSqlExecutor.execute4PrimaryKey(MappedSqlExecutor.java:689) ~[snf-dal-3.0.4.jar:na]
	at com.suning.framework.dal.client.support.executor.MappedSqlExecutor.execute(MappedSqlExecutor.java:649) ~[snf-dal-3.0.4.jar:na]
	at com.suning.framework.dal.client.support.ShardingDalClient.execute(ShardingDalClient.java:286) ~[snf-dal-sharding-1.0.6.jar:na]
	at com.suning.moms.service.impl.ob.UnpaidOrderStatusImportServiceImpl.updateOrderItemStatus(UnpaidOrderStatusImportServiceImpl.java:108) ~[moms-admin-service-1.0.0.jar:na]
	at com.suning.moms.service.impl.ob.UnpaidOrderStatusImportServiceImpl.saveCUnpaidOrderStatus(UnpaidOrderStatusImportServiceImpl.java:91) ~[moms-admin-service-1.0.0.jar:na]
	at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source) ~[na:na]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) ~[na:1.6.0]
	at java.lang.reflect.Method.invoke(Method.java:611) ~[na:1.6.0]
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) [spring-tx-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at $Proxy45.saveCUnpaidOrderStatus(Unknown Source) [na:na]
	at com.suning.moms.service.impl.mq.MQMessageServiceImpl.chooseBusinessService(MQMessageServiceImpl.java:168) [moms-admin-service-1.0.0.jar:na]
	at sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source) ~[na:na]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) ~[na:1.6.0]
	at java.lang.reflect.Method.invoke(Method.java:611) ~[na:1.6.0]
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) [spring-tx-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at $Proxy50.chooseBusinessService(Unknown Source) [na:na]
	at com.suning.moms.service.impl.mq.MQImportThread.runEsbMessage(MQImportThread.java:133) [moms-admin-service-1.0.0.jar:na]
	at com.suning.moms.service.impl.mq.MQImportThread.run(MQImportThread.java:64) [moms-admin-service-1.0.0.jar:na]
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) [na:1.6.0]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) [na:1.6.0]
	at java.lang.Thread.run(Thread.java:736) [na:1.6.0]
Caused by: com.ibm.websphere.ce.cm.StaleConnectionException: The last packet successfully received from the server was 46,677,980 milliseconds ago.  The last packet sent successfully to the server was 46,677,981 milliseconds ago. 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.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.6.0]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:56) ~[na:1.6.0]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:39) ~[na:1.6.0]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:527) ~[na:1.6.0]
	at com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapExceptionHelper(GenericDataStoreHelper.java:615) ~[rsahelpers.jar:WAS70.SERV1 [cf211150.04]]
	at com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapException(GenericDataStoreHelper.java:677) ~[rsahelpers.jar:WAS70.SERV1 [cf211150.04]]
	at com.ibm.ws.rsadapter.AdapterUtil.mapException(AdapterUtil.java:2112) ~[com.ibm.ws.runtime.jar:na]
	at com.ibm.ws.rsadapter.jdbc.WSJdbcUtil.mapException(WSJdbcUtil.java:1034) ~[com.ibm.ws.runtime.jar:na]
	at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.setAutoCommit(WSJdbcConnection.java:3489) ~[com.ibm.ws.runtime.jar:na]
	at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.getTargetConnection(LazyConnectionDataSourceProxy.java:417) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.invoke(LazyConnectionDataSourceProxy.java:376) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at $Proxy68.prepareStatement(Unknown Source) ~[na:na]
	at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImpl.createPreparedStatement(PreparedStatementCreatorFactory.java:245) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:581) ~[spring-jdbc-3.1.2.RELEASE.jar:3.1.2.RELEASE]
	... 39 common frames omitted


经过定位怀疑是数据库连接池中获取到的连接已经超时,长时间没有被使用导致超时。但是WAS上JDBC-数据源-定制属性-URL属性的值=jdbc:mysql://10.27.88.137:3306/moms_137?useUnicode=true&characterEncoding=utf8&autoReconnect=true这个的配置是对的,配置了自动重新连接。
但是 WAS上JDBC-数据源-WebSphere Application Server 数据源属性-通过 SQL 查询进行验证(不推荐在 V7 中使用)查询熟悉的值=SELECT 1 FROM DUMMYTABLE
,这个查询语句是错的,MYSQL应该写成SELECT 1 ,这样就避免了这个问题。 



分享到:
评论

相关推荐

    论WebSphere中流行数据库连接池的配置.doc

    在WebSphere应用服务器中,数据库连接池的配置是实现高效数据库访问的关键步骤。连接池管理数据库连接,避免了频繁创建和关闭连接的开销,提高了系统的性能和响应速度。本文主要讨论了在WebSphere中配置Oracle、SQL ...

    WebSphere数据库连接池配置.doc

    数据库连接池是指在应用服务器中维护的一组数据库连接的集合,使应用程序能够能够快速地获取数据库连接,从而提高应用程序的性能。在本文中,我们将详细地介绍 WebSphere 数据库连接池的配置过程。 一、登陆配置...

    详解:WebSphere中流行数据库连接池的配置

    WebSphere中流行数据库连接池的配置 本文介绍WebSphere下Oracle、SQL Server、Sybase、MySQL数据库连接池的配置方法,并给出相应调用连接池的示例。相对于Weblogic,WebSphere连接池的配置要稍微复杂一些,因为缺少...

    WebSphere配置数据库连接池

    在 WebSphere 中,数据源需要指定一个唯一的名称(数据源名)和 JNDI(Java Naming and Directory Interface)名称,便于应用程序通过 JNDI 查找并获取连接。同时,选择或创建与数据源匹配的 J2C 认证别名,以存储...

    WebSphere数据库连接池配置[整理].pdf

    WebSphere 数据库连接池配置是指在 WebSphere 应用服务器中配置数据库连接池,以便更好地管理数据库连接。下面是 WebSphere 数据库连接池配置的详细过程: 一、数据库连接池配置(WebSphere 6.0) 1. 登陆配置页面...

    论WebSphere中流行数据库连接池的配置.docx

    ### WebSphere中流行数据库连接池的配置详解 #### 一、引言 在现代企业级应用开发中,数据库连接池的合理配置对于提高系统的性能和稳定性至关重要。WebSphere作为IBM的一款高级应用程序服务器,支持多种数据库管理...

    Java中数据库连接池原理机制的详细讲解.pdf

    当应用程序需要访问数据库时,可以直接从连接池中获取一个空闲连接,使用完毕后将连接归还到连接池而不是关闭它。这种方式避免了频繁创建和销毁连接所带来的开销,同时也能够有效地控制数据库连接的数量。 #### 三...

    Java-jdbc数据库连接池总结.doc

    连接池如同一个预创建的数据库连接集合,应用程序在需要时从池中获取连接,用完后归还,而不是直接关闭。这种方式减少了连接的创建和销毁次数,提高了系统性能,并且可以通过设置最大连接数来防止过度消耗资源。 ...

    数据库连接池的原理机制学习

    应用程序在需要数据库连接时,可以从这个缓冲池中获取一个现有的连接,而不需要每次都新建一个连接。使用完毕后,连接会被放回缓冲池中,供后续使用。这种方式不仅可以减少系统与数据库之间建立连接的次数,还可以...

    weblogic连接池配置数据库断掉重连的问题

    在 Weblogic 中,连接池配置是指将多个连接组合成一个池,以便于应用程序可以快速地获取连接。连接池配置可以提高应用程序的性能,减少与数据库的交互开销。 连接池配置包括两个主要部分:连接池和连接。连接池是指...

    websphare配置数据库连接池

    在 WebSphere 中配置数据库连接池是非常重要的一步,对于初学者来说,可能会遇到一些困难。因此,本文将介绍 WebSphere 下 Oracle、SQL Server、Sybase、MySQL 数据库连接池的配置方法,并提供相应的调用示例。 一...

    数据库连接池原理

    3. 当有数据库访问请求时,从连接池中获取一个连接,如果池中没有空闲连接,且总数未达到最大连接数,就创建新的连接。 4. 完成数据库操作后,关闭连接,实际上将其归还到连接池的空闲队列中。 5. 当服务器停止或...

    数据库的连接池原理,基本概念及原理,服务器自带的连接池

    1. 连接池的基本概念及原理:数据库连接池的基本思想是为数据库连接建立一个“缓冲池”,预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。...

    WebSphere中流行数据库连接池的配置(Oracle、SQL Server、Sybase、MySQL)

    WebSphere 中流行数据库连接池的配置(Oracle、SQL Server、Sybase、MySQL) 在 WebSphere 中配置数据库连接池是非常重要的,因为它能够提高应用程序的性能和可靠性。本文将详细介绍如何在 WebSphere 中配置 Oracle...

    WebSphere中流行数据库连接池的配置(Oracle、SQL_Server、Sybase、MySQL)

    在WebSphere应用服务器中,配置数据库连接池是确保高效、稳定的应用运行的关键步骤。本文将深入讲解如何在WebSphere环境中配置针对Oracle、SQL Server、Sybase和MySQL这四种流行数据库的连接池。 首先,进行系统...

    Java jdbc数据库连接池总结.doc

    数据库连接池的工作原理类似于一个资源池,它预先创建并维护一定数量的数据库连接,当应用需要连接时,可以从池中获取一个已经建立的连接,使用完毕后再归还给池,而不是直接关闭。这种方式减少了频繁创建和销毁连接...

    Java_jdbc数据库连接池总结

    数据库连接池是在应用服务器启动时预创建并维护的一组数据库连接,应用程序需要时可以从池中获取连接,用完后归还,而不是直接关闭。这种方式减少了连接创建和销毁的次数,提高了数据库访问效率,并且可以通过设置...

    WebSphere 流行数据库连接池的配置(Oracle、SQL+Server、Sybase、MySQL)

    下面将详细介绍如何在 WebSphere 中配置这四种流行数据库的连接池。 一、Oracle 数据库连接池配置 1. 首先,在 WebSphere Application Server 的管理控制台中,导航至 "资源" -> "Java 虚拟机" -> "数据源"。 2. ...

    数据库连接池的原理机制

    当应用需要连接数据库时,可以从连接池中获取一个已存在的连接,使用完毕后归还到池中,而不是关闭连接。通过设置最大连接数,可以防止过度消耗数据库资源,同时,连接池的监控功能可以帮助开发者了解系统的运行状态...

Global site tag (gtag.js) - Google Analytics