2012-07-12 78 views
2

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

我已经在这一点,工作这么的,我追它演变的问题。现在的问题是这样的。

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

我使用JTDS司机,顺便说一句,以避免我们一直与MS一个发现的问题。

我在我的本地机器上运行的SQL Server Express 2008 R2与Tomcat和运行我的测试在我的Eclipse IDE中有任何人看到过任何想法,为什么休眠可能会锁定10个用户?

+0

可能与:你检查与JRE JDBC驱动程序的兼容性使用(MSSQL-JDBC的一些版本不Java7正常工作)。 – Durandal 2012-07-12 11:57:43

+0

哦,是啊!完全不使用Microsoft驱动程序。使用JTDS。 – Thom 2012-07-12 11:58:23

回答

2

我相信问题是,你不能打开足够的会话,因为你需要(因为他们汇集)

  • 如何打开会话?
  • 连接池的大小是多少?
  • 你总是关闭会议吗?
+0

上帝,我真是个白痴!我总是将我的maxActive parm设置为-1,但是我从其他人那里复制了这个文件,它被设置为8.难怪我遇到了问题。我改为-1,测试开始再次运行。谢谢您的帮助! – Thom 2012-07-12 12:12:33

+1

想一想,通过简单地为网页开发人员投票“是”就可以避免这种情况。 – Thom 2012-07-12 12:25:16