java - 20 个模拟用户的 Hibernate 死锁

标签 java sql-server-2008 hibernate

我们有一个基本的 Java EE 应用程序,它在 tomcat 下运行并维护到 SQL Server 数据库的连接池。我们遇到了一些仅在生产中出现的数据问题,因此我创建了一个测试工具,可以模拟不同数量的用户在不同路径上通过系统。

我已经在这方面做了一些工作,所以问题随着我的追求而演变。现在的问题是这样的。

十个用户线程完美运行。永远不会为这 20 个用户中的任何一个插入 20 个用户线程以及用户登录系统时创建的日志记录。事实上,Hibernate 3.3 会执行插入记录的 Action ,但是当我使用 show_sql 设置时,插入语句永远不会出现在转储中。这同样适用于 10 个用户。更令人费解的是,每隔一段时间它就会对 20 个用户之一起作用。 :(

顺便说一句,我正在使用 JTDS 驱动程序,以避免我们在 MS 驱动程序中不断发现的问题。

我正在本地机器上使用 tomcat 运行 SQL Server Express 2008 R2,并在 eclipse IDE 中运行我的测试应用程序。有人见过这样的东西吗?关于为什么 hibernate 可能会在 10 个用户后锁定的任何想法?

最佳答案

我认为问题在于您无法根据需要打开足够的 session (因为它们是池化的)

  • 如何开始 session ?
  • 您的连接池有多大?
  • 您总是关闭 session 吗?

关于java - 20 个模拟用户的 Hibernate 死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451171/

相关文章:

java - Spring Data JPA 实体的有效标志

java - Swing 显示多个子 jframe

java - Hibernate CriteriaQuery<T> - 任何直接的代码示例?

c# - Datagridview 多查询字符串问题

sql-server - 从另一个数据库插入数据库,在 SQL Server 中指定一些值

sql - 为什么存储过程不能与 select、where 和 having 一起使用

hibernate - JPA ConstraintViolation 与回滚

java - JPA 2.0 - 使用@NamedNativeQuery 的 Oracle 函数 - 错误

java - 尝试查找字符串中是否至少有 2 个单词

java - 从 List<Integer> 转换为数组 float[]