查询表时遇到死锁情况

时间:2013-08-22 10:19:04

标签: jpa eclipselink sybase sybase-ase

我们有一个名为job的表,它有一个自引用键。我们使用JPA和eclipselink作为JPA提供程序。有时我们会得到以下异常

  

异常[EclipseLink-4002](Eclipse持久性服务 -   2.3.2.v20111125-r10461):org.eclipse.persistence.exceptions.DatabaseException内部   例外:com.sybase.jdbc3.jdbc.SybSQLException:您的服务器命令   (系列ID#0,进程ID#384)遇到死锁情况。   请重新运行您的命令。

我们在UI中有一个动作,当执行JSM消息时会转到某个外部组件,并且会在我们的作业表中创建一条记录,然后将作业ID发送给客户端,他将被重定向到作业view列出表中的所有作业。重定向后,客户端将发送ajax请求以列出所有作业。在此操作开始时,我们将从外部组件接收通知,然后更新作业表记录。

我坚信,当select操作正在进行时,我们正在尝试更新表,这种情况正在发生。谁能告诉我如何解决这个问题。

感谢大家提前的好日子。

1 个答案:

答案 0 :(得分:0)

除了具有良好的索引之外,您还可以通过更改表的锁定方案来解决选择/更新冲突。

Sybase在此处提供了很好的文档:

Performance and Tuning Series: Locking and Concurrency Control