# T6 聚焦修复 1:50 条并发边界 ## Prior Failure `W3-T6.md` 在 MySQL 默认 `REPEATABLE READ` 等价测试下复现:49 条活动自定义项时并发发起两个创建请求,两个请求都通过计数检查,最终写入第 51 条,预期为一个成功、另一个 9703。 ## Objective 修复并发 50 条边界,保证在 MySQL 默认隔离级别下最多只能有 50 条活动企业自定义项。 ## Required Changes - 在检查活动条目前使用当前读或锁定读,不得依赖事务早期快照。 - 企业行锁与活动条目计数必须处于同一事务,并确保计数读取看到锁等待前的已提交结果。 - 允许使用 `PESSIMISTIC_WRITE` 查询公司自定义项、调整锁顺序或等效数据库级机制。 - 保留既有的幂等重放、9704、软删除和跨企业隔离行为。 - 将并发边界测试配置为重复读隔离级别,使其能在 H2 `MODE=MySQL` 下复现并验证 MySQL 风险。 ## Evidence ```powershell cd D:\1\zhi\zhilai\mydreamjob-server mvn -Dtest=OnboardingConcurrencyIntegrationTest,OnboardingCompanyChecklistServiceTest test ``` ## Repair Constraints - 只做聚焦修复,不扩展接口或用户可见行为。 - 不修改 V1-V38。 - 修复后必须通过 `Onboarding*Test,CompanyKnowledge*Test`。