---
source_url: https://docs.dolphindb.cn/zh/error_codes/S00002.html
fetched_at: 2026-05-19T09:07:27Z
category: error_codes
title: S00002
sha1: ee0a7cf0b02e493cb2591a36b90a651b1afbef6f
---

# S00002

## 错误代码

S00002

## 报错信息

The openChunks operation failed because the chunk <xxx> is currently locked and in
use by transaction <tid>. RefId:S00002

## 错误原因

当事务 A 锁定并使用某分区时，该分区无法被事务 B 使用，直到事务 A 完成或释放前述分区。

## 解决办法

DolphinDB 支持事务，确保事务的原子性、一致性、隔离性和持久性。每次进行增加、删除或修改的操作，DolphinDB 都会创建一个事务，对相应的分区进行锁定。
当多个 writer 并行写入数据时，避免同时对同一个分区进行增加、删除或修改的操作。

例如，以下脚本提交两个任务同时写入分区1，2 和 3：

```dolphindb
login(`admin, `123456)
dbpath="dfs://testDB"
tbname="tb";
if(existsDatabase(dbpath))
	dropDatabase(dbpath);
db=database(dbpath,VALUE,1..2);
dumyTable=table(1..3 as id, 1..3 as val);
tb=createPartitionedTable(db,dumyTable,"tb", "id");

def Job(dbPath, tbName) {
	for(i in 1..100) {
		dumyTable=table(1..3 as id, 1..3 as val)
		tb = loadTable(dbPath, tbName)
		t = table(1..3 as id, 1..3 as val);
		tb.append!(t)
	}
}

submitJob("job1", "", Job, dbpath, tbname)
submitJob("job2", "", Job, dbpath, tbname)

getRecentJobs()
```

执行 `getRecentJobs`
时遇到报错：

```dolphindb
<ChunkInTransaction>The openChunks operation failed because the chunk '/testDB/1/2' is currently locked and in use by transaction 8. RefId:S00002
```

1. 修改 server 中执行任务的逻辑，确保他们不会同时修改同一个分区。
2. 通过 `setAtomicLevel` 函数，将数据库的 atomic 级别设置为
   CHUNK。此后，当写入事务涉及的某些分区发生冲突时，会自动完成对未冲突分区的写入，然后在一段时间内不断尝试写入冲突分区。

   注：

   这样操作可能会导致一次写入被拆分成多次事务。
