mysql - 事务管理超时问题

标签 mysql sql spring hibernate

我试图通过 springs 2.5 和 hibernate 3 从我们的应用程序运行查询,但是查询既没有超时也没有返回结果(查询挂起),当我从查询浏览器运行相同的查询时,它工作正常。

即使我增加了查询超时,我仍然无法获取结果。

我尝试增加查询执行超时,但未能返回记录

<property name="javax.persistence.query.timeout" value="3000" />

<tx:advice id="defaultTxAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <!-- Keep SequenceService in a isolation transaction -->
        <tx:method name="get*" read-only="true" />
        <!-- By default, A runtime exception will rollback transaction. -->
        <tx:method name="*" timeout="100" rollback-for="ApplicationException" />
    </tx:attributes>
</tx:advice>

任何形式的帮助/建议将不胜感激

最佳答案

这些是我对这里问题的想法。因为我在这里找不到任何相关代码..

  1. 由于在单次提取中执行多个查询(类似于 hibernate 中的 n+1 问题)。 提示:确保在开发者计算机中将显示 SQL 值设置为 true
  2. 由于代码中查询处理不规则,例如迭代 n 次。数据库服务器会将其视为某种威胁,并进入锁定状态并停止执行查询一段时间。
  3. 事务超时处理不当,例如如果您增加事务超时值,则可能会长时间锁定数据库。

还有其他可能性,但除非我看到代码,否则我无法提出任何建议。

关于mysql - 事务管理超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22776503/

相关文章:

sql - SELECT SQL 查询帮助

sql - BigQuery SQL 错误 : Name rank not found inside latest at [9:15]

mysql - SQL 左连接外键两个表

mysql - 插入查询不起作用!这些值没有反射(reflect)在表格中

mysql - 如何找到最后一条 GPS 路线的开始时间

c# - 无效的对象名称 'dbo.CategoryIdArray'

java - Spring MethodInvokingBean - DriverManagerDataSource 不接受返回的值

spring - 如何在 Spring Test 中注册 ApplicationEnvironmentPreparedEvent

java - PageNotFound - noHandlerFound 在 DispatcherServlet 中未找到带有 URI [/SpringSecWebApp/welcome] 且名称为 'mvc-dispatcher' 的 HTTP 请求的映射

mysql - 将 NULL 插入列中?