社区
Java EE
帖子详情
请问 多进程访问同一数据库 如何锁定
neverPE
2008-05-15 03:47:26
想进行简单的协同操作, 会存在多个进程(多台机器)访问同一数据库(服务器上). 请问有没有办法实现一下需求:
当进程A操作某一行时(不是表, 是一行), 可以将其锁定, 从而进程B无法对其进行写操作. 最好B在写操作之前, 就知道改行不能写.
我尝试用Hib的session的Lock方法对某对象进行锁定, 但不管是Write还是Read, 另一进程获得的LockMode都是None. 似乎这是Hib的锁而不是数据库的.请问各位, 这种需要要怎样实现?
...全文
104
5
打赏
收藏
请问 多进程访问同一数据库 如何锁定
想进行简单的协同操作, 会存在多个进程(多台机器)访问同一数据库(服务器上). 请问有没有办法实现一下需求: 当进程A操作某一行时(不是表, 是一行), 可以将其锁定, 从而进程B无法对其进行写操作. 最好B在写操作之前, 就知道改行不能写. 我尝试用Hib的session的Lock方法对某对象进行锁定, 但不管是Write还是Read, 另一进程获得的LockMode都是None. 似乎这是Hib的锁而不是数据库的.请问各位, 这种需要要怎样实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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,在一个事务中进行操作即可。
也可以使用乐观锁,即需要个版本字段,更新一次就加一,每次更新之前做对比,即可解决。
Python-
多进程
深入学习
多进程
操作数据
在Android中
多进程
使用
同一
个sqlite
数据库
的问题
一、
多进程
访问
同一
个
数据库
是否安全 背景:多个进程代表多个
数据库
操作instance,每个进程有自己的ApplicationContext。多个进程内存不共享。 写代码做了测试测试代码在最后,虽然sqlite不是线程安全的,但是在...
多进程
访问
数据库
SQLite问题
一般来说,一个APP默认只有一个...[Android开发]
多进程
访问
数据库
SQLite问题 当然,在一些项目中,可能存在着一个APP有多个进程的情况。如上面的“com.instagram.android”和“com.instragram.android.mqtt”其实就
2021-06-16QT+ QSqlite
数据库
,两个进程操作
同一
个
数据库
出现提示:sqlError(5,“unable to fetch row“,“databse is locked“)
A, B 两个独立进程(其实是
同一
套代码,exe多复制了一个,同时运行),操作
同一
个 QSqlite
数据库
里面的
同一
个表,出现了上面的错误提示。 解决方法:使用不同的连接名称,如下: QString aaName= QString::number...
[
多进程
访问
sqlite3 bug] 解决方法
写两个进程模拟
多进程
访问
数据库
文件导致的错误,最后给出解决方法 关于libdata.so和database.h头文件 database.h只是申明了一个虚基类,database_impl.h和database_impl.cpp继承了database类,并进行了具体实现。 ...
Java EE
67,512
社区成员
225,880
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章