构想一个使用手工锁定解决一种业务需求的场景
来源:互联网 发布:linux修复系统 编辑:程序博客网 时间:2024/05/18 13:09
网上交易时比如货物有3件,在购买时需要按购买数量进行锁定。
BYS@dg2>lock table t in share mode;手工锁定一个表,设置锁的级别为4
Table(s) Locked.
已经在T表上加上了4号锁,除了当前会话外阻塞其他会话进行修改
BYS@dg2> select sid,type,id1,id2,lmode,request,block from v$lock where type in ('TM','TX') order by 1,2;
SID TY ID1 ID2 LMODE REQUEST BLOCK
---------- -- ---------- ---------- ---------- ---------- ----------
36 TM 75052 0 4 0 0
此时在会话2插入数据,
BYS@dg2>select distinct sid from v$mystat;
SID
----------
44
BYS@dg2>insert into t values(333); hang住
此时返回会话1上进行查询:
BYS@dg2> select sid,type,id1,id2,lmode,request,block from v$lock where type in ('TM','TX') order by 1,2;
SID TY ID1 ID2 LMODE REQUEST BLOCK
---------- -- ---------- ---------- ---------- ---------- ----------
36 TM 75052 0 4 0 1
44 TM 75052 0 0 3 0
44会话默认可以获得一个3号锁,由于3号和4号互斥不能共存,所以没有获得锁,正在等待申请3号锁
BYS@dg2>commit;
Commit complete.
BYS@dg2>lock table t in share mode;手工锁定一个表,设置锁的级别为4
Table(s) Locked.
已经在T表上加上了4号锁,除了当前会话外阻塞其他会话进行修改
BYS@dg2> select sid,type,id1,id2,lmode,request,block from v$lock where type in ('TM','TX') order by 1,2;
SID TY ID1 ID2 LMODE REQUEST BLOCK
---------- -- ---------- ---------- ---------- ---------- ----------
36 TM 75052 0 4 0 0
此时在会话2插入数据,
BYS@dg2>select distinct sid from v$mystat;
SID
----------
44
BYS@dg2>insert into t values(333); hang住
此时返回会话1上进行查询:
BYS@dg2> select sid,type,id1,id2,lmode,request,block from v$lock where type in ('TM','TX') order by 1,2;
SID TY ID1 ID2 LMODE REQUEST BLOCK
---------- -- ---------- ---------- ---------- ---------- ----------
36 TM 75052 0 4 0 1
44 TM 75052 0 0 3 0
44会话默认可以获得一个3号锁,由于3号和4号互斥不能共存,所以没有获得锁,正在等待申请3号锁
BYS@dg2>commit;
Commit complete.
- 构想一个使用手工锁定解决一种业务需求的场景
- 发布一个锁定行列的一种方法
- 一种展柜的设计构想
- 解决场景加载慢的一种方法
- 不同业务场景使用不同的map
- ServeltContext的理解和一种使用场景
- [重写系统控件]ViewPager与SwipeBackLayout的业务需求解决
- Android ViewPager与SwipeBackLayout的业务需求解决
- Android ViewPager与SwipeBackLayout的业务需求解决
- 使用用例捕获业务需求(业务需求的7个实践原则)
- Silverlight的业务场景
- Silverlight的业务场景
- 一个网格计算的构想
- 一个游戏框架的构想
- 小创新,不同业务场景使用不同的map
- 多线程的一种场景
- 一个构想
- 手工场景
- 导致死锁的SQL示例
- 简述单工、半双工、全双工的区别
- OCP-1Z0-053-V12.02-300题
- SSH框架Environment.<clinit>(652) | using JDK 1.4 java.sql.Timestamp handling卡死
- TM表锁各种mode的实验及2-6 的TM锁相互间的互斥示例
- 构想一个使用手工锁定解决一种业务需求的场景
- 模拟insert,update和delete造成阻塞的示例
- linux安装memcached
- DB基本概念之 --- 表连接
- 模拟RI锁定导致阻塞的场景
- 在Linux下adb连接不上android手机的终极解决方案
- Java中常出现的乱码问题总结
- global.cpp
- WinCE驱动开发感想