Hibernate与20个模拟用户发生死锁

时间:2012-07-12 11:48:20

标签: java sql-server-2008 hibernate

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

我已经对此进行了一些研究,所以当我追逐它时问题就会发生变化。现在的问题是这个。

十个用户线程完美运行。用户登录系统时创建的20个用户线程和日志记录永远不会为20个用户中的任何一个插入。实际上,Hibernate 3.3经历了插入记录的动作,但是当我使用show_sql设置时,insert语句永远不会出现在转储中。再次,这适用于10个用户。更令人费解的是,每隔一段时间它就会为20个用户中的一个用户工作。 :(

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

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

1 个答案:

答案 0 :(得分:2)

我认为问题在于你无法打开足够多的会话(因为它们是合并的)

  • 你如何打开会话?
  • 您的连接池有多大的尺寸?
  • 你总是关闭会议吗?