我有简单的 spring + hibernate + mysql 项目。打开 mysql 服务器上的查询日志,我看到很多频繁的“SET autocommit=0;commit;SET autocommit=0”语句,而没有在我的应用程序上执行任何操作。
我的应用程序的哪个进程/为什么执行这些频繁查询?我在下面列出了连接池配置。
请注意:
- 通常的 sql 查询(来自我的应用程序)正在工作并在此处记录
- 这些日志非常频繁,例如每秒 1-4 个。
如果我取消部署我的应用程序,所有这些“SET autocommit=0;commit;SET autocommit=0”日志将停止
131001 10:41:31 2046 查询 SET autocommit=0 2046 查询提交 2046 查询 SET autocommit=1 2046 查询 SET autocommit=0 2046 查询提交 2046 查询 SET autocommit=1 2046 查询 SET autocommit=0 2046 查询提交 2046 查询 SET autocommit= 1 2061 查询 SET autocommit=0 2061 查询提交 2061 查询 SET autocommit=1 2061 查询 SET autocommit=0 2061 查询提交 2061 查询 SET autocommit=1 2061 查询 SET autocommit=0 2061 查询提交 2061 查询 SET autocommit=1 131001 10:41 :34 2051 查询 SET 自动提交=0 2051 查询提交 2051 查询 SET 自动提交=1 2051 查询 SET 自动提交=0 2051 查询提交 2051 查询 SET 自动提交=1 2051 查询 SET 自动提交=0 2051 查询提交 2051 查询 SET 自动提交=1 2047 查询 SET 自动提交=0
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close"> <property name="driverClass" value="com.mysql.jdbc.Driver" /> <property name="jdbcUrl" value="" /> <property name="username" value="..."/> <property name="password" value="..."/> <property name="idleConnectionTestPeriodInMinutes" value="60"/> <property name="idleMaxAgeInMinutes" value="240"/> <property name="maxConnectionsPerPartition" value="30"/> <property name="minConnectionsPerPartition" value="5"/> <property name="partitionCount" value="3"/> <property name="acquireIncrement" value="5"/> <property name="statementsCacheSize" value="300"/> <property name="releaseHelperThreads" value="3"/> <property name="connectionTestStatement" value="/* ping *\/ SELECT 8"/> </bean>