๐Ÿ“• Language/Java

[Error ํšŒ๊ณ ] Source์™€ Database์˜ ์ œ์•ฝ์กฐ๊ฑด์ด ์–ด๊ธ‹๋‚˜๋Š” ๊ฒฝ์šฐ

a n u e 2022. 2. 16. 09:28

์ „ ํŽธ์— ์ด์–ด์„œ ...

https://itbox.tistory.com/39

 

[Error ํšŒ๊ณ ] Lock๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ Transaction ๋ถ„๋ฆฌ

์šด์˜·๊ด€๋ฆฌํ•˜๋Š” ์‚ฌ์ดํŠธ ์ค‘, ์š”๊ทผ๋ž˜ ์œ ๋… ์†๋„๊ฐ€ ์ €ํ•˜๋œ ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ๋‹ค. ์†๋„๋ณด๋‹ค๋„ ํฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ํŠน์ • ํ…Œ์ด๋ธ”์—์„œ DB Lock์ด ์ง€์†์ ์œผ๋กœ ๊ฑธ๋ฆฐ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์ด๊ฒƒ์€ ์†๋„์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ์‚ฌ

itbox.tistory.com


์ด์ œ Lock์€ ๋ฐฉ์ง€ํ–ˆ๊ณ , ์–ด๋””์„œ Error๊ฐ€ ๋–จ์–ด์กŒ๊ธธ๋ž˜ ๊ทธ๊ฐ„ ์‹œ๋„์™€ ์‹คํŒจ๋ฅผ ๋ฐ˜๋ณตํ–ˆ์„๊นŒ? ๊ถ๊ธˆํ•ด์กŒ๋‹ค.

๊ทธ๋ž˜์„œ ์ดํด๋ฆฝ์Šค์—์„œ ํ•ด๋‹น ์‚ฌ์ดํŠธ๋ฅผ ๋กœ์ปฌ๋กœ ๋Œ๋ ค, ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ๋™์„ ํ•ด๋ณด์•˜๋‹ค. ๋ชป๋ฐ›์•„์˜จ ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๋งŽ์•„์„œ ๋‹ค๋ฅธ ๋…ธํŠธ๋ถ์—์„œ ๊ตฌ๋™ ํ›„, ์‹œ๊ฐ„์ด ๋‚ ๋•Œ๋งˆ๋‹ค ๊ฐ€์„œ ์ฝ˜์†”์„ ํ™•์ธํ•ด๋ณด์•˜๋Š”๋ฐ ์•„๋‹ˆ๋‚˜ ๋‹ค๋ฅผ๊นŒ ๋นจ๊ฐ›๊ฒŒ SqlIgnoreException ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค. 

 

org.springframework.dao.DuplicateKeyException:
### Errror updating database
Cause: java.sql.SQLIntegrityConstraintViolatoinException:
ORA-00001 : ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์— ์œ„๋ฐฐ๋ฉ๋‹ˆ๋‹ค.

 

checkMethod์—์„œ ํ•ด๋‹น ํ…Œ์ด๋ธ”์— ํŠน์ • ์กฐ๊ฑด์„ ๊ฑธ์–ด Countํ•˜๋Š” ๋กœ์ง์ด ์žˆ๋‹ค. 

A, B, C 3๊ฐœ์˜ ์ปฌ๋Ÿผ์œผ๋กœ Count๋ฅผ ํ•˜๋Š”๋ฐ, DB๋ฅผ ๋ง‰์ƒ ๊นŒ๋ณด๋‹ˆ ํ…Œ์ด๋ธ”์˜ ์ œ์•ฝ์กฐ๊ฑด์ด A, C 2๊ฐœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

Count ์‹œ์—๋Š” ๋ฐ›์•„์˜ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒƒ์œผ๋กœ ํŒ๋ช…ํ•˜์—ฌ Insert๋ฅผ ์‹œ๋„ํ•˜์˜€์œผ๋‚˜ DB์—์„œ๋Š” ์ด๋ฏธ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์ด ๋œจ๋Š” ๊ฒƒ์ด๋‹ค. ์ด์— ํ•ด๋‹น ๊ณ ๊ฐ์‚ฌ์˜ Database ์ œ์•ฝ์กฐ๊ฑด์„ ์ˆ˜์ •ํ•ด์ฃผ์—ˆ๋‹ค.

์ด์ œ ์ œ๋ฐœ ์ •์ƒ์ ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ๋ฅผ ๋ฐ”๋ž„๋ฟ ..