有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java避免死锁的正确Hibernate会话超时值是多少?

我们的Postgresql应用程序出现Hibernate错误:org。冬眠util。JDBCExceptionReporter-错误:检测到死锁。建议处理此问题的方法之一是设置事务超时 (Hibernate参考文档):

sess.getTransaction().setTimeout(3)

3秒的值是如何定义的


共 (1) 个答案

  1. # 1 楼答案

    如果您的查询处于死锁状态,请调查其原因并修复。PostgreSQL server错误日志中的错误消息会告诉您死锁的事务。如果仅此一项还不够,请设置log_statement = 'all',添加一个log_line_prefix来标识事务或使用csv日志记录,并分析日志文件以查看发生了什么

    如果你被卡住了,你可以手动重新创建死锁,并查看pg_locks了解更多关于发生了什么的信息;见the lock monitoring wiki article

    如果死锁检测超时对您来说太长,请降低PostgreSQL的死锁检测超时,不要在应用程序中添加语句超时攻击。见the documentation on lock management