社区
Java EE
帖子详情
请问 多进程访问同一数据库 如何锁定
neverPE
2008-05-15 03:47:26
想进行简单的协同操作, 会存在多个进程(多台机器)访问同一数据库(服务器上). 请问有没有办法实现一下需求:
当进程A操作某一行时(不是表, 是一行), 可以将其锁定, 从而进程B无法对其进行写操作. 最好B在写操作之前, 就知道改行不能写.
我尝试用Hib的session的Lock方法对某对象进行锁定, 但不管是Write还是Read, 另一进程获得的LockMode都是None. 似乎这是Hib的锁而不是数据库的.请问各位, 这种需要要怎样实现?
...全文
115
5
打赏
收藏
请问 多进程访问同一数据库 如何锁定
想进行简单的协同操作, 会存在多个进程(多台机器)访问同一数据库(服务器上). 请问有没有办法实现一下需求: 当进程A操作某一行时(不是表, 是一行), 可以将其锁定, 从而进程B无法对其进行写操作. 最好B在写操作之前, 就知道改行不能写. 我尝试用Hib的session的Lock方法对某对象进行锁定, 但不管是Write还是Read, 另一进程获得的LockMode都是None. 似乎这是Hib的锁而不是数据库的.请问各位, 这种需要要怎样实现?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
burningice44
2008-05-16
打赏
举报
回复
不行就锁定数据库连接
neverPE
2008-05-15
打赏
举报
回复
我测试用的表只有一条记录. 读出来查看属性是正确的. 实在找不出是什么原因了. 难道是Access不支持对行的悲观锁?
Shine_Panda
2008-05-15
打赏
举报
回复
这个锁好像是数据库的,通过for update实现, 但为什么对其他进程无效呢?
可能是其他的进程并没有访问 你 for update 的那条记录 。 就不会被锁上。
neverPE
2008-05-15
打赏
举报
回复
谢谢楼上.
我本来也是想用悲观锁, 使用ISession的方法Lock
ISession session;
session.Lock(obj, LockMode.Upgrade)
本进程内, 再获取改对象的锁定状态session.GetCurrentLockMode(obj); 确实是LockMode.Upgrade.
但是另一个进程, 就一直是LockMode.NONE
看文档, 这个锁好像是数据库的,通过for update实现, 但为什么对其他进程无效呢?
lovingprince
2008-05-15
打赏
举报
回复
你要锁定一行可以使用悲观锁,即查询的时候使用 select ... for update,在一个事务中进行操作即可。
也可以使用乐观锁,即需要个版本字段,更新一次就加一,每次更新之前做对比,即可解决。
多线程编程技术开发资料.pdf
2. **线程同步机制**:为了防止多个线程同时
访问
同一
资源导致的数据不一致,需要使用同步机制。常见的同步机制包括互斥锁、信号量、条件变量等。 3. **死锁与活锁**:在多线程编程中,不当的线程同步可能会导致死锁...
下载 多线程编程技术开发资料 高清完整PDF版
多线程编程广泛应用于服务器端应用、图形用户界面(GUI)、
数据库
操作以及任何需要处理多任务或提高性能的软件开发中。 10. 并发编程高级话题 随着多核处理器的普及,多线程编程领域也衍生出了更多高级话题,包括但不...
memcached for window32
- **分布式系统**:在分布式环境中,多台服务器共享
同一
缓存,提高响应速度和一致性。 - **API缓存**:对于API调用,可以缓存常见的请求结果,减少网络延迟。 - **CDN缓存**:与内容分发网络结合,提供更快的内容...
多进程
连接mysql_
多进程
多线程
访问
数据库
多进程
多线程
访问
数据库
如何让
多进程
多线程
访问
数据库
,而不会选择相同的数据,这在设计分布式程序的时候经常用到,多台机器的多个进程,每个进程都有多个线程,每个线程要从
数据库
里取数据来处理,要实现不能漏取...
在Android中
多进程
使用
同一
个sqlite
数据库
的问题
一、
多进程
访问
同一
个
数据库
是否安全 背景:多个进程代表多个
数据库
操作instance,每个进程有自己的ApplicationContext。多个进程内存不共享。 写代码做了测试测试代码在最后,虽然sqlite不是线程安全的,但是在...
Java EE
67,543
社区成员
225,859
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章