小编wes*_*737的帖子

调试Amazon RDS上的MySQL死锁

我的MySQL数据库(Amazon RDS实例)上出现了越来越多的"死锁"和"锁定超时"问题.直到几天前,数据库运行良好.服务器代码(执行查询)的更改没有超过一周.我知道异常是什么,但我对调试和查找导致问题的特定查询/语句的最佳方法感到茫然.

设置信息:

  • MySQL Amazon RDS实例(小)
  • 除了字符编码(更改为UTF-8)之外,RDS配置文件/ MySQL设置中的所有内容都是默认的
  • 进行查询的服务器是带有Hibernate的Tomcat Java服务器
  • 从Tomcat服务器日志中读取有关异常的信息
  • 查询/最小值在50 - 5000之间

我最好的猜测是设置中的某些东西(Hibernate或MySQL)导致了这个问题.服务器运行良好,然后延迟将通过屋顶导致各种负面行为.发生这种情况时,实例的CPU利用率将接近100%.

休眠设置是:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass"><value>com.mysql.jdbc.Driver</value></property>
    <property name="jdbcUrl"><value>XXXX</value></property>
    <property name="user"><value>XXXX</value></property>
    <property name="password"><value>XXXX</value></property>
    <property name="initialPoolSize"><value>3</value></property>
    <property name="minPoolSize"><value>3</value></property>
    <property name="maxPoolSize"><value>50</value></property>
    <property name="idleConnectionTestPeriod"><value>200</value></property>
    <property name="acquireIncrement"><value>1</value></property>
    <property name="maxStatements"><value>0</value></property>
    <property name="numHelperThreads"><value>6</value></property>
</bean>
Run Code Online (Sandbox Code Playgroud)

任何想法在哪里开始调试如果设置中的某些东西可能导致这个问题将不胜感激.

mysql hibernate amazon-web-services

5
推荐指数
1
解决办法
1763
查看次数

如何使用MySQL只读副本配置Spring/Hibernate

我有一个Java应用程序,它使用Spring/Hibernate(在Amazon Elastic Beanstalk上运行)和普通的Amazon RDS实例.为了分配负载,我正在添加一个只读副本.我将DB.url交换到只读副本并测试了一个只读取数据的方法(这些方法绝对不使用UPDATE,INSERT或DELETE).但是,应用程序返回错误.

我的问题:为什么只在读取数据时应用程序失败了?如何配置Spring/Hibernate以使用只读副本?

细节:

我得到的错误是:

INFO: Internal error in method IEngageManager.getSimpleExamActivityLiveResults, ARGUMENTS=[
  Credentials {
(m) password=0c2a765c057a31c51b68d0f6c75cef93, 
(m) email=w1jg
  }
]
com.iengage.exceptions.IEException: Internal error in method IEngageManager.getSimpleExamActivityLiveResults, ARGUMENTS=[
  Credentials {
    (m) password=0c2a765c057a31c51b68d0f6c75cef93, 
    (m) email=w1jg
  }
]
    at com.iengage.exceptions.ExceptionWrapper.overridingInvoke(ExceptionWrapper.java:25)
    at com.iengage.springobjects.SingletonMethodInterceptor.invoke(SingletonMethodInterceptor.java:18)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
    at com.iengage.managers.IEngageManager$$EnhancerByCGLIB$$c8a2c385.getSimpleExamActivityLiveResults(<generated>)
    at com.iengage.services.IEngageService.getSimpleExamActivityLiveResults(IEngageService.java:379)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246)
    at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)
    at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257)
    at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
    at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
    at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
    at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
    at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
    at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
    at …
Run Code Online (Sandbox Code Playgroud)

java mysql spring hibernate

5
推荐指数
1
解决办法
2597
查看次数

标签 统计

hibernate ×2

mysql ×2

amazon-web-services ×1

java ×1

spring ×1