28.01.2015 Views

PZ3U6X

PZ3U6X

PZ3U6X

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

想 定 外 のデッドロック<br />

• MySQLのInnoDBストレージエンジンに 対 して、2つのトランザクション<br />

を 以 下 の 順 番 で 実 行 するとデッドロックが 発 生 します。<br />

1:REPEATABLE_READ<br />

2:REPEATABLE_READ<br />

1:UPDATE:DELETE FROM emp WHERE empno = 7784<br />

(1:UPDATE:COUNT=0)<br />

2:UPDATE:DELETE FROM emp WHERE empno = 7786<br />

(2:UPDATE:COUNT=0)<br />

1:UPDATE:INSERT INTO emp (empno, ename) VALUES (7784, 'steve')<br />

2:UPDATE:INSERT INTO emp (empno, ename) VALUES (7786, 'bill')<br />

(1:UPDATE:COUNT=1)<br />

(2:UPDATE:COUNT=0)<br />

(2:com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException:<br />

Deadlock found when trying to get lock; try restarting transaction)<br />

2:ABORT<br />

7698<br />

(blake)<br />

7782<br />

(clark)<br />

7788<br />

(scott)<br />

7839<br />

(king)<br />

• このデッドロックの 発 生 メカニズムを 理 解 するために、InnoDBのロック<br />

アーキテクチャについて 確 認 していきます。<br />

4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!