标签: database-locking

Mysql 死锁 - 事务是否正在等待它持有的锁?

我无法解释 MySql(5.7,InnoDB)的死锁输出。我知道死锁最终会通过更改应用程序级别代码来解决,并且您无法从这段代码中找到根本原因。然而,希望有人能够告诉我为什么我对这个 MySql 诊断的解释是不正确的。

------------------------
LATEST DETECTED DEADLOCK
------------------------
2018-04-09 19:41:39 0x2b7323ef1700
*** (1) TRANSACTION:
TRANSACTION 33312589, ACTIVE 16 sec starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 1136, 1 row lock(s)
MySQL thread id 150744, OS thread handle 47781157312256, query id 53141856 ec2-34-250-106-67.eu-west-1.compute.amazonaws.com 34.250.106.67 sc_appuser3 statistics
/* requestId: 11e8-3c2d-fb145a10-b404-0242ac110003 */ SELECT locator FROM policy WHERE locator = 'df0d7ef5-2e14-4664-90b2-2bfb3f35cce2' AND tenant_locator = '8df5d824-6de9-4e21-8135-b19303aec800' FOR UPDATE
*** (1) WAITING FOR THIS LOCK …
Run Code Online (Sandbox Code Playgroud)

mysql deadlock database-deadlocks database-locking

5
推荐指数
1
解决办法
1245
查看次数

SQLITE_BUSY数据库文件在wicket中被锁定(数据库被锁定)

我在wicket做一个项目如何解决问题.我遇到了这样一条消息:WicketMessage:无法使用构造函数public itucs.blg361.g03.HomePage()实例化页面

根本原因:

java.lang.UnsupportedOperationException:[SQLITE_BUSY]在itucs.blg361.g03.CategoryEvents.CategoryEventCollection.getCategoryEvents(CategoryEventCollection.java:41)中锁定数据库文件(数据库已被锁定)

 public List<CategoryEvent> getCategoryEvents() {
    List<CategoryEvent> categoryEvents = new 
            LinkedList<CategoryEvent>();
    try {
        String query = "SELECT id, name, group_id"
                + " FROM event_category";
        Statement statement =  this.db.createStatement();
        ResultSet result = statement.executeQuery(query);
        while (result.next()) {
            int id = result.getInt("id");
            String name = result.getString("name");
            int group_id = result.getInt("group_id");
            categoryEvents.add(new CategoryEvent(id, name, group_id));
        }
    } catch (SQLException ex) {
        throw new UnsupportedOperationException(ex.getMessage());
    }
        return categoryEvents;  
}
Run Code Online (Sandbox Code Playgroud)

at itucs.blg361.g03.HomePage.(HomePage.java:71)

        categories = categoryCollection.getCategoryEvents();
Run Code Online (Sandbox Code Playgroud)

在java.lang.reflect.Constructor.newInstance(Constructor.java:525)

sqlite database-locking

4
推荐指数
2
解决办法
2万
查看次数

如何确保模型始终使用事务和锁定(在Rails中)?

我注意到Rails可能会出现多个服务器的并发问题,并希望强制我的模型始终锁定.这在Rails中是否可行,类似于强制数据完整性的唯一约束?还是只需要仔细编程?

一号航站楼

irb(main):033:0* Vote.transaction do
irb(main):034:1* v = Vote.lock.first
irb(main):035:1> v.vote += 1
irb(main):036:1> sleep 60
irb(main):037:1> v.save
irb(main):038:1> end
Run Code Online (Sandbox Code Playgroud)

第二个终端,一边睡觉

irb(main):240:0* Vote.transaction do
irb(main):241:1* v = Vote.first
irb(main):242:1> v.vote += 1
irb(main):243:1> v.save
irb(main):244:1> end
Run Code Online (Sandbox Code Playgroud)

数据库启动

 select * from votes where id = 1;
 id | vote |         created_at         |         updated_at         
----+------+----------------------------+----------------------------
  1 |    0 | 2013-09-30 02:29:28.740377 | 2013-12-28 20:42:58.875973 
Run Code Online (Sandbox Code Playgroud)

执行后

一号航站楼

irb(main):040:0> v.vote
=> 1
Run Code Online (Sandbox Code Playgroud)

二号航站楼

irb(main):245:0> v.vote
=> 1
Run Code Online (Sandbox Code Playgroud)

DB结束

select * from votes where id …
Run Code Online (Sandbox Code Playgroud)

concurrency ruby-on-rails activemodel database-locking

3
推荐指数
1
解决办法
2009
查看次数

弹性搜索中的锁

我试图在谷歌上找到但没有成功。

谁能解释一下弹性搜索在什么级别使用锁来处理多线程或多进程环境?

它是在索引或文档类型还是文档类型中的特定文档?

multithreading locking multiprocessing database-locking elasticsearch

3
推荐指数
1
解决办法
4448
查看次数

查找持有锁的查询

我们如何找到导致 DB2 10.5 中锁定的查询和进程 ID?

我们可以通过“get snapshot for locks on dbname”命令找到表和表空间名称。但我想知道查询和进程 ID。

db2 database-locking db2-luw

2
推荐指数
1
解决办法
1万
查看次数

为什么UPDATE会阻止不相关的行上的SELECT?

拥有由脚本[1]定义的表,我在SSMS的2个窗口中执行脚本

--1) first in first SSMS window
set transaction isolation level READ UNCOMMITTED;
begin transaction;
update aaa set Name ='bbb' 
    where id=1;
-- results in "(1 row(s) affected)"
--rollback
Run Code Online (Sandbox Code Playgroud)

之后1)

--2)after launching 1)
select * from aaa --deleted comments
where id<>1
--is blocked
Run Code Online (Sandbox Code Playgroud)

独立于1)窗口中的事务隔离级别,2)中的SELECT被阻止.
为什么?

UPDATE的隔离级别是否会对其他事务的语句产生任何影响?

最高隔离级别是2)中的默认READ COMMITTED.
没有范围锁被归因,SELECT应该遭受COMMITTED READS(NONREPEATABLE READs)和PHANTOM READS(可重复读取)问题[2]
如何让它受到影响?

如何在不阻塞SELECT的情况下进行UPDATE?

[1]

CREATE TABLE aaa
(
    Id int IDENTITY(1,1) NOT NULL,
    Name  varchar(13) NOT NULL
)


insert into  aaa(Name) 
   select '111' union all 
   select '222' union all …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server transactions nonblocking database-locking

1
推荐指数
1
解决办法
3280
查看次数

Delphi:数据库被锁定(SQLite)

我面临两个问题......

(1)当我尝试使用Delphi XE6写入数据库(SQLite)时,我总是得到数据库被锁定的错误消息.我确信每次使用FDConnection1.Close命令访问数据库时都会关闭数据库.

(2)如何从传入参数中插入表格?我有以下传入参数

procedure TStock_Bookkeeping.Write_To_DB(const Stock_Code, Stock_Name,
Tran_Date, Buy_Sell, Price_Per_Share, Num_Shares, Trans_Fee: string);
Run Code Online (Sandbox Code Playgroud)

并尝试使用以下SQL命令写入表:

sSQL := 'INSERT INTO Each_Stock_Owned(Stock_Code, Stock_Name, Tran_Date, Buy_Sell,
         Price_Per_Share, Num_Shares, Trans_Fee) 
         VALUES (Stock_Code, Stock_Name, Tran_Date, Buy_Sell, Price_Per_Share,  
         Num_Shares, Trans_Fee)';
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用......

以下是我遇到问题的完整程序

procedure TStock_Bookkeeping.Write_To_DB(const Stock_Code, Stock_Name,
  Tran_Date, Buy_Sell, Price_Per_Share, Num_Shares, Trans_Fee: string);
var
  query : TFDQuery;
  sSQL: string;
begin
    query := TFDQuery.Create(nil);
  try
    ConnectToSQLite;
    query.Connection := FDConnection1;
  if Stock_Code.IsEmpty then
    ShowMessage('Stock Code Cannot Be Empty')
    else
      if Stock_Name.IsEmpty then
        ShowMessage('Stock Name Cannot Be Empty')
        else
          if …
Run Code Online (Sandbox Code Playgroud)

database delphi sqlite database-locking

1
推荐指数
1
解决办法
7192
查看次数

PostgreSQL 错误:进程仍在等待数据库 0 的关系 2676 上的 AccessShareLock

我们无法连接到 PostgreSQL 实例,我们必须重新启动 PostgreSQL 服务才能连接到该实例,但几天后我们开始收到相同的错误。

日志显示以下错误

2019-02-18 08:00:03.043 UTC [5053] postgres@utilitydbLOG:  process 5053 still waiting for AccessShareLock on relation 2676 of database 0 after 1000.431 ms
2019-02-18 08:04:04.486 UTC [5170] bucardo@bucardoLOG:  process 5170 still waiting for AccessShareLock on relation 2676 of database 0 after 1001.006 ms
2019-02-18 08:15:02.802 UTC [5445] postgres@utilitydbLOG:  process 5445 still waiting for AccessShareLock on relation 2676 of database 0 after 1000.425 ms
2019-02-18 08:30:02.844 UTC [5846] postgres@utilitydbLOG:  process 5846 still waiting for AccessShareLock on relation 2676 …
Run Code Online (Sandbox Code Playgroud)

database postgresql database-locking postgresql-9.6

1
推荐指数
1
解决办法
2952
查看次数