【问题标题】:Handle the row lock in multithreaded environment Using jdbcTemplate使用 jdbcTemplate 处理多线程环境中的行锁
【发布时间】:2021-06-16 10:52:57
【问题描述】:

我正在开发 Spring JPA 和 JdbcTemplate 混合环境。挑战是在多线程环境中使用 jdbcTemplate 更新行(Oracle)。那么问题是如何锁定行以及如何防止出现死锁的情况?

【问题讨论】:

  • 好吧;哪个部分的任务在这里是多线程的?编程层(java+pl/sql)还是数据库层(plain-sql)?从我看到人们使用 java applet/jsp w/. Oracle 10g 他们为更新写了一个选择,然后在下面直接写更新
  • 在编程层
  • 您打算使用哪种锁定模型(乐观或悲观)?我尝试做几件事; 1.“少锁,晚锁,早释放”和2.尝试以相同的顺序更新表。

标签: spring oracle jpa jdbctemplate


【解决方案1】:

解决方案是使用FOR UPDATE NOWAIT; 结束选择查询。这样可以避免等待其他事务释放行锁。

oracle documentation 上找到了解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    相关资源
    最近更新 更多