首页 > 数据库 >oracle锁表,java代码修改方式如下

oracle锁表,java代码修改方式如下

时间:2023-02-28 11:23:51浏览次数:40  
标签:java 锁表 代码 object session oracle locked id transactionManager

select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id;


select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
2023-02-27 16:56:37
alter system kill session '29,14735';

SELECT lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name,
o.owner,o.object_name,o.object_type,s.sid,s.serial#
FROM v$locked_object l,dba_objects o,v$session s
WHERE l.object_id=o.object_id
AND l.session_id=s.sid
ORDER BY o.object_id,xidusn DESC

 

java代码中前一段代码使用mybatis得代码,后一段代码使用类似hibernate得写法,对同一个table和同一行(同一条)数据进行修改(进行update),估计前一个update没有提交,后一个update看到没提交一直锁表。

代码卡在那里。

修改把前一段代码得update代码里加上强制commit代码

try {
DataSourceTransactionManager transactionManager = (DataSourceTransactionManager)BeanContextUtil.getApplicationContext().getBean("transactionManager");

DefaultTransactionDefinition defr = new DefaultTransactionDefinition();
defr.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
TransactionStatus status = transactionManager.getTransaction(defr);

//更新逻辑代码TODO
transactionManager.commit(status);
return num;
}catch (Exception e){
e.printStackTrace();
//return -1;
log.error("error updateCancelForCredit",e);
}

标签:java,锁表,代码,object,session,oracle,locked,id,transactionManager
From: https://www.cnblogs.com/bhliuyou/p/17163333.html

相关文章

  • 【java】一些基础小知识
    重写重载:重写:是继承时对父类的方法重写该方法内容,方法类型是不变的,即返回类型,方法名字,参数都不变。值得注意的是可以改变权限,只能提高不能降低重载:是一个类中有多个名字......
  • java网络编程-线程池服务端
    上篇文章我们借助线程实现了服务端可以服务多个客户端,但是每次请求进来都创建新线程也是一种很大的资源消耗,线程上下文切换都会影响性能。本次我们继续对服务端进行改造,引......
  • java调用c++的几种方式
    jni类似c#调用c++的方式,定义java端的c++代码接口。packagecrayon.jni;publicclassJNITest{publicnativestaticvoidset(inti);publicna......
  • oracle恢复数据using backup controlfile与until cancel的说明--转
    usingbackupcontrolfile与untilcancel的说明支持数据库版本:10gR2、11gR21.recoverdatabaseusingbackupcontrolfile2.recoverdatabaseuntilcancel3.recoverd......
  • Java学习笔记12
    正则表达式1.概述​ 在Java中,我们经常需要验证一些字符串,例如:年龄必须是2位的数字、用户名必须是8位长度而且只能包含大小写字母、数字等。正则表达式就是用来验证各种字......
  • 基础Java学习笔记(一)
    学习笔记01两年前学的Java,现在已经忘得差不多了,跟着狂神说Java的视频从头开始学,希望能救一救ww一、JDKJREJVM1.JDKjavadevelopmentkit2.JREjavaRuntimeEnvir......
  • java网络编程-并发服务端
    上次的服务端一次只能接受一个客户端的连接,性能实在堪忧,我们对服务端进行了改造,每接到一个客户端的请求,就新建一个线程,让新线程跟客户端进行交互,主线程可以继续等待其他客......
  • java面试题-列举常见的异常
    面试中经常会被问到,列举几种常见异常。怎么能被这个难倒呢?下面随便列举些,以及触发例子。文章目录​​NullPointerException​​​​ArithmeticException​​​​NumberFor......
  • java使用gzip压缩和解压
    代码如下:publicclassGZipUtils{publicstaticfinalintBUFFER=1024;publicstaticfinalStringEXT=".gz";publicstaticvoidmain(String[]args)......
  • java使用commons-lang3
    pom.xml中添加<!--https://mvnrepository.com/artifact/org.apache.commons/commons-lang3--><dependency><groupId>org.apache.commons</groupId><artifactId>co......