消息关闭
    暂无新消息!
连接池配置:

<bean id="dataSource_reporter" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">   
    <!-- 基本属性 url、user、password -->
    <property name="driverClassName" value="${reporter.mysql.driver}"/>
    <property name="url" value="${reporter.mysql.url}" />  
    <property name="username" value="${reporter.mysql.user}" />  
    <property name="password" value="${reporter.mysql.pass}" />  
        
    <!-- 配置初始化大小、最小、最大 -->  
    <property name="initialSize" value="10" />  
    <property name="minIdle" value="10" />   
    <property name="maxActive" value="10" />  
   
    <!-- 配置获取连接等待超时的时间 -->  
    <property name="maxWait" value="600000" />  
   
    <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  
    <property name="timeBetweenEvictionRunsMillis" value="60000" />  
   
    <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  
    <property name="minEvictableIdleTimeMillis" value="300000" />  
    
    <property name="validationQuery" value="SELECT 1" />  
    <property name="testWhileIdle" value="true" />  
    <property name="testOnBorrow" value="false" />  
    <property name="testOnReturn" value="false" />  
   
    <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->  
    <property name="poolPreparedStatements" value="true" />  
    <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />  
   
    <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->  
    <property name="filters" value="stat" />   
</bean>

SELECT 
  SUM(amount) AS amount17,
  SUM(volume) AS volume17
FROM
  wanxiangdata.salesrecords_offline_monthly
 LEFT semi JOIN 
  (SELECT 
    theone.shopcode_one AS shop_code
  FROM
    (SELECT DISTINCT 
       shopcode AS   shopcode_one 
    FROM
      wanxiangdata.salesrecords_offline_monthly 
    WHERE 1 = 1 
      and `month` in ('16.02') and category in ('豆浆机') ) AS theone 
    INNER JOIN 
      (SELECT DISTINCT 
        shopcode AS shopcode_two 
      FROM
        wanxiangdata.salesrecords_offline_monthly 
      WHERE 1 = 1 
        and `month` in ('17.02') and category in ('豆浆机') ) AS thetwo 
      ON thetwo.shopcode_two = theone.shopcode_one) AS shopTable
      ON (shopcode=shopTable.shop_code and `month` in ('17.02') and category in ('豆浆机') )
这个查询 时间超长 
Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4bf2f706]
2017-07-06 20:39:37,584 ERROR [com.mars.reporter.service.Impl.TestCaseRunnerImpl.runTestCase(TestCaseRunnerImpl.java:227)] - 
### Error updating database.  Cause: java.sql.SQLException: Could not retrieve transaction read-only status from server
### The error may involve com.mars.reporter.dao.RunnerTestCaseResultMapper.insert-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO runner_test_case_result  ( id,test_case_id,exe_sql,amount,amount_basis_ratio,amount_market_share,amount_share_basis_ratio,amount_share_ranking,amount_share_ranking_basis_ratio,volume,volume_basis_ratio,volume_market_share,volume_share_basis_ratio,volume_share_ranking,volume_share_ranking_basis_ratio,amount_relative_ratio,volume_relative_ratio,amount_share_ranking_relative_ratio,amount_share_relative_ratio,volume_share_relative_ratio,volume_share_ranking_relative_ratio,avg_price,avg_price_relative_ratio,avg_price_basis_ratio,avg_price_index,avg_price_index_relative_ratio,avg_price_index_basis_ratio,volume_ranking,amount_ranking,is_active,update_time,create_time ) VALUES( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? )
### Cause: java.sql.SQLException: Could not retrieve transaction read-only status from server
; SQL []; Could not retrieve transaction read-only status from server; nested exception is java.sql.SQLException: Could not retrieve transaction read-only status from server
Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4bf2f706] from current transaction
==>  Preparing: UPDATE runner_test_case_info SET execute_detail = ?,execute_result = ?,execute_time = ?,update_time = ? WHERE id = ? 
==> Parameters: 
### Error updating database.  Cause: java.sql.SQLException: Could not retrieve transaction read-only status from server
### The error may involve com.mars.reporter.dao.RunnerTestCaseResultMapper.insert-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO runner_test_case_result  (* ) VALUES( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? )
### Cause: java.sql.SQLException: Could not retrieve transaction read-only status from server
; SQL []; Could not retrieve transaction read-only status from server; nested exception is java.sql.SQLException: Could not retrieve transaction read-only status from server(String), 0(Integer), 2017-07-06 20:39:37(String), 2017-07-06 20:39:37(String), 93(Integer)
Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4bf2f706]
Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4bf2f706]
Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4bf2f706]
2017-07-06 20:39:37,592 ERROR [com.alibaba.druid.pool.DruidDataSource.handleConnectionException(DruidDataSource.java:1387)] - discard connection
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2017-07-06 20:39:37,596 ERROR [org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:508)] - Application exception overridden by rollback exception
org.springframework.dao.TransientDataAccessResourceException: 
### Error updating database.  Cause: java.sql.SQLException: Could not retrieve transaction read-only status from server
### The error may involve com.mars.reporter.dao.RunnerTestCaseInfoMapper.updateByPrimaryKeySelective-Inline
### The error occurred while setting parameters
### SQL: UPDATE runner_test_case_info  SET execute_detail = ?,execute_result = ?,execute_time = ?,update_time = ? WHERE  id = ?
### Cause: java.sql.SQLException: Could not retrieve transaction read-only status from server
; SQL []; Could not retrieve transaction read-only status from server; nested exception is java.sql.SQLException: Could not retrieve transaction read-only status from server
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy42.updateByPrimaryKeySelective(Unknown Source)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: Could not retrieve transaction read-only status from server
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3505)
at com.mysql.jdbc.PreparedStatement.checkReadOnlySafeStatement(PreparedStatement.java:1113)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 120,918 milliseconds ago.  The last packet sent successfully to the server was 39 milliseconds ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
... 75 more
Caused by: java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)



0个回答

暂无回答!