我们有一个基本的 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/