点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我经常在生产环境中面临数据库连接重置问题。 我正在将Hybris-5.0.3.4和mysql 5.1.73与mysql 5.1.23连接器一起使用。
我有以下设置:
db.pool.maxActive = 90 db.pool.maxIdle = 90 db.pool.minIdle = 2 db.pool.timeBetweenEvictionRunsMillis = 10000 db.pool.minEvictableIdleTimeMillis = 300000 db.pool.numTestsPerEvictionRun = 100 db。 pool.testWhileIdle = true db.pool.testOnBorrow = false db.pool.testOnReturn = false db.pool.whenExhaustedAction = 1 db.pool.maxWait = 10000 db.pool.dumpThreadsOnBorrowError = false db.pool.closeOnRollbackAfterError = mysql tenant.restart .on.connection.error = false
以下是错误跟踪:
console-20150605.log:INFO | jvm 1 | 主| 2015/06/05 11:18:11.871 | 错误[TP-Processor7] [172.27.34.28] [FlexibleSearch] Flexiblesearch错误:SQL搜索错误:通信链接失败console-20150605.log:INFO | jvm 1 | 主| 2015/06/05 11:18:11.971 | com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败console-20150605.log:INFO | jvm 1 | 主| 2015/06/05 11:18:11.974 | 错误[TP-Processor2] [172.27.34.28] [FlexibleSearch] Flexiblesearch错误:SQL搜索错误:通信链接失败console-20150606.log:INFO | jvm 1 | 主| 2015/06/06 20:36:26.787 | 错误[TP-Processor8] [49.195.42.212] [DefaultAutoLoginStrategy]在自动登录控制台20150607.log:INFO中失败 jvm 1 | 主| 2015/06/07 08:23:11.893 | 错误[TP-Processor23] [101.174.176.96] [FlexibleSearch] Flexiblesearch错误:SQL搜索错误:通信链接失败console-20150608.log:INFO | jvm 1 | 主| 2015/06/08 01:16:38.006 | 错误[TP-Processor24] [101.169.127.248] [FlexibleSearch] Flexiblesearch错误:SQL搜索错误:通信链接失败console-20150609.log:INFO | jvm 1 | 主| 2015/06/09 20:17:54.540 | 错误[TP-Processor12] [58.161.224.33] [FlexibleSearch] Flexiblesearch错误:SQL搜索错误:通信链接失败console-20150612.log:INFO | jvm 1 | 主| 2015/06/12 22:06:02.284 | 错误[TP-Processor37] [121.218.50.149] [FlexibleSearch] Flexiblesearch错误:SQL搜索错误:通信链接失败console-20150614.log:INFO | jvm 1 | 主| 2015/06/14 04:32:11.284 | 错误[TP-Processor21] [172.27.34.28] [FlexibleSearch] Flexiblesearch错误:SQL搜索错误:通信链接失败console-20150614.log:INFO | jvm 1 | 主| 2015/06/14 04:32:11.288 | WARN [TP-Processor21] [172.27.34.28] [DefaultCMSComponentRendererRegistry]处理组件标签时出错。 currentComponent [ProductNavigationComponentModel(8796560000060)]异常:请求处理失败; 嵌套的异常是de.hybris.platform.jalo.flexiblesearch.FlexibleSearchException:SQL搜索错误:通信链接失败console-20150614.log:INFO | jvm 1 | 主| 2015/06/14 04:46:48.214 | 错误[TP-Processor7] [172.27.34.28] [FlexibleSearch] Flexiblesearch错误:SQL搜索错误:通信链接失败console-20150614.log:INFO | jvm 1 | 主| 2015/06/14 05:33:34.749 | 线程" TaskExecutor-master-64007"中的异常de.hybris.platform.persistence.hjmp.HJMPException:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败console-20150614.log:INFO | jvm 1 | 主| 2015/06/14 05:33:34.749 | 引起原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败console-20150614.log:INFO | jvm 1 | 主| 2015/06/14 05:33:34.749 | com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败console-20150614.log:INFO | jvm 1 | 主| 2015/06/14 06:15:58.176 | 线程" TaskExecutor-master-64102"中的异常de.hybris.platform.persistence.hjmp.HJMPException:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败console-20150614.log:INFO | jvm 1 | 主| 2015/06/14 06:15:58.176 | 引起原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败console-20150614.log:INFO | jvm 1 | 主| 2015/06/14 06:15:58.177 | com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败
成功发送到服务器的时间为927,669毫秒。 查询='SELECT item_t0.PK 从价格行item_t0哪里(item_t0.p_productmatchqualifier IN(?,?)) AND(item_t0.TypePkString =?AND(((item_t0.p_product不为null或item_t0.p_catalogversion为NULL或item_t0.p_catalogversion IN(?,?)))))',值= [0,8804034347009,8796099772498,PropertyValue:8796093350489, PropertyValue:8796093153881]/opt/env/hybris/log/tomcat/console-20150701.log:INFO | jvm 1 | 主| 2015/07/01 00:21:02.063 | 从服务器成功接收到的最后一个数据包是1,224,878毫秒之前。 成功发送到服务器的最后一个数据包是927,669毫秒之前。 查询='SELECT item_t0.PK 从价格行item_t0哪里(item_t0.p_productmatchqualifier IN(?,?)) AND(item_t0.TypePkString =?AND(((item_t0.p_product不为null或item_t0.p_catalogversion为NULL或item_t0.p_catalogversion IN(?,?)))))',值= [0,8808010743809,8796099772498,PropertyValue:8796093350489, PropertyValue:8796093153881]/opt/env/hybris/log/tomcat/console-20150701.log:INFO | jvm 1 | 主| 2015/07/01 00:52:44.673 | 从服务器成功接收到的最后一个数据包是1,210,802毫秒之前。 成功发送到服务器的最后一个数据包是927,669毫秒之前。 查询='SELECT item_t0.PK 从价格行item_t0哪里(item_t0.p_productmatchqualifier IN(?,?)) AND(item_t0.TypePkString =?AND(((item_t0.p_product不为null或item_t0.p_catalogversion为NULL或item_t0.p_catalogversion IN(?,?)))))'),值= [0,8805877678081,8796099772498,PropertyValue:8796093350489, PropertyValue:8796093153881]/opt/env/hybris/log/tomcat/console-20150701.log:INFO | jvm 1 | 主| 2015/07/01 01:30:06.411 | 从服务器成功收到的最后一个数据包是1,192,962毫秒之前。 成功发送到服务器的最后一个数据包是927,669毫秒之前。 查询='选择 item_t0.PK 从类别item_t0中(item_t0.p_code =?AND item_t0.p_catalogversion = (?))AND(item_t0.TypePkString IN(?,?)AND((存在(选择 item_t1.PK a> FROM cat2princrel item_t1 WHERE(item_t1.SourcePK = item_t0.PK AND item_t1.TargetPK IN(?, ?))AND(item_t1.TypePkString =?)))AND(item_t0.p_catalogversion IN(?,?))))')',values = [kids-underwear-girls-socks,PropertyValue:8796093153881,8796102197330,8796101214290,PropertyValue: 8796093087748,属性值:8796125855749,8976102557778,属性值:8796093350489,属性值:8796093153881]/opt/env/hybris/log/tomcat/console-20150701.log:INFO | jvm 1 | 主| 2015/07/01 03:16:39.443 | 从服务器成功接收到的最后一个数据包是1,232,421毫秒之前。 成功发送到服务器的最后一个数据包是930738毫秒之前。 query ='SELECT item_t1.PK FROM cmslinksfornavnodes item_t0 JOIN cmscomponent item_t1 ON item_t0.SourcePK = item_t1.PK 在哪里(item_t0.Qualifier =?AND item_t0.TargetPK =?AND item_t0.LanguagePK为NULL)AND(item_t1 .TypePkString =?)按item_t0.RSequenceNumber ASC排序, item_t0.PK ASC',值= [CMSLinksForNavNodes ,PropertyValue:8796356084800,8796114649170]/opt/env/hybris/log/tomcat/console-20150701.log:INFO | jvm 1 | 主| 2015/07/01 03:34:37.574 | 从服务器成功接收到的最后一个数据包是1,224,448毫秒之前。 成功发送到服务器的最后一个数据包是927,669毫秒之前。 查询='SELECT item_t0.PK 从价格行item_t0哪里(item_t0.p_productmatchqualifier IN(?,?)) AND(item_t0.TypePkString =?AND(((item_t0.p_product不为null或item_t0.p_catalogversion为NULL或item_t0.p_catalogversion IN(?,?)))))',值= [0,8800646037505,8796099772498,PropertyValue:8796093350489, PropertyValue:8796093153881]/opt/env/hybris/log/tomcat/console-20150701.log:INFO | jvm 1 | 主| 2015/07/01 04:11:16.744 | 从服务器成功接收到的最后一个数据包是1,178,104毫秒之前。 成功发送到服务器的最后一个数据包是926,646毫秒之前。 查询='选择 item_t0.PK 从类别item_t0中(item_t0.p_code =?AND item_t0.p_catalogversion = (?))AND(item_t0.TypePkString IN(?,?)AND((存在(选择 item_t1.PK a>从cat2princrel item_t1所在位置(item_t1.SourcePK = item_t0.PK AND item_t1.TargetPK IN(?, ?))AND(item_t1.TypePkString =?)))AND(item_t0.p_catalogversion IN(?,?))))')',values = [women-dresses,PropertyValue:8796093153881,8796102197330,8796101214290,PropertyValue:8796093087748,PropertyValue: 8796125855749、8796102557778,属性值:8796093350489,属性值:8796093153881]/opt/env/hybris/log/tomcat/console-20150701.log:信息| jvm 1 | 主| 2015/07/01 04:46:45.464 | 从服务器成功接收的最后一个数据包是1,230,526毫秒之前。 成功发送到服务器的最后一个数据包是931761毫秒之前。 查询='SELECT item_t0.PK 从价格行item_t0哪里(item_t0.p_productmatchqualifier IN(?,?)) AND(item_t0.TypePkString =?AND(((item_t0.p_product不为null或item_t0.p_catalogversion为NULL或item_t0.p_catalogversion IN(?,?)))))'),值= [0,8808781414401,8796099772498,PropertyValue:8796093350489, PropertyValue:8796093153881]/opt/env/hybris/log/tomcat/console-20150701.log:INFO | jvm 1 | 主| 2015/07/01 05:44:32.662 | 从服务器成功接收的最后一个数据包是1,136,812毫秒之前。 成功发送到服务器的最后一个数据包是927,669毫秒之前。 查询='SELECT item_t0.PK 从价格行item_t0哪里(item_t0.p_productmatchqualifier IN(?,?)) AND(item_t0.TypePkString =?AND(((item_t0.p_product不为null或item_t0.p_catalogversion为NULL或item_t0.p_catalogversion IN(?,?)))))',值= [0,8798948032513,8796099772498,PropertyValue:8796093350489, PropertyValue:8796093153881]
谢谢。
你好Ashok,
发生这种情况可能有多种原因。 首先,您应该确保没有数据库可访问性问题(网络问题)。
您的池配置似乎是默认配置。
这还取决于是否足以满足您的负载–如果不需要,请对其进行调整 。
请提供以下信息以供进一步调查:
附加完整的console.log
从同一台计算机连接到同一数据库实例,并不时运行一些测试查询。 您可以使用Java编写简单的DB客户端,也可以使用 mysql客户端。 它将告诉我们这是hybris平台问题还是数据库。
监视HAC中的数据库统计信息。 "转到监控器->数据库->数据源(主服务器-活动)"。 这些信息向您显示到目前为止已打开了多少个同时连接。 如果您要达到最大值,并且会出现异常,则可能意味着已使用所有可用资源。
监视数据库上的连接数量:
已配置的限制-显示变量,例如" max_connections";
活动连接–在以下状态下显示命令显示状态
variable_name
='线程已连接';执行两个命令并粘贴结果:
显示变量'%timeout%';
显示变量'%max_connections%';
变量 wait_timeout 指示何时删除mysql数据库 IDLE连接(如果未在定义的时间内使用它)。Hybris有自己的连接池,用于存储创建的连接。 如果数据库关闭连接,然后在平台中使用它,则可能会出现这种异常。
在两端同步逐出时间非常重要(wait_timeout应该比池中的逐出时间高)。
查看池描述:
http://commons.apache.org/proper/commons-pool/api-1.6/org/apache/commons/pool/impl/GenericObjectPool.html
关于托马斯。
啊找到了。 有许多前缀为
db.pool。
的属性。只需记住,wait_timeout
以秒为单位,而Apache设置以** milli *为单位。 * seconds嗨,Tomasz,
感谢及时答复。
请找到随附的完整console.log
我已经通过脚本检查了App和DB服务器之间没有网络问题。
有时同时打开的连接等于最大打开的连接。
我们有max_connections 3000,而wait_timeout默认为28800秒,这比逐出要高得多。
我还要在这里提到一件事,我们有3台应用服务器在生产中,我们仅在app01和app02上失去了数据库连接
链接文本
还为节点1和3添加日志。
[1]:/storage/temp/3466-console-20150710-node1.txt
链接文本
我们正在运行mysql-connector-java-5.1.23(发布于2013-03-12)。 最新版本是5.1.36。 Hybris是否仍建议将5.0.3.4版本的Hybris用作5.1.23驱动程序? 还是有升级选项?
一周热门 更多>