http://cs.hatenablog.jp/entry/2013/07/09/234554 RDB操作でデッドロックは不可避です。ご確認ください。 DBでのデッドロックの発生は、直ちにシステムが停止することを意味しません。DBMSはデッドロック発生を検出してトランザクションを失敗させる機能を持っているからです。 アプリケーションの開発者がすべきことはただ一点、 デッドロック検出時のリトライ です。更新処理だけじゃないです。参照処理でも忘れちゃいけません。約束です。 Javaの場合デッドロック発生はコード的にどう検知すればいいかというと、SQLExceptionが内部にSQLSTATEというRDB共通のエラー番号を持っているのでこれで判別可能となっています。 SQLSTATEの一覧は日立さんのこのまとめが役に立ちます。拝承。 http://www.hitachi.co.jp/Prod/c
![JavaでRDBデッドロック検出 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/4b3928249fe864ff1c78b16dfae04e7cdfa3b6f4/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9SmF2YSVFMyU4MSVBN1JEQiVFMyU4MyU4NyVFMyU4MyU4MyVFMyU4MyU4OSVFMyU4MyVBRCVFMyU4MyU4MyVFMyU4MiVBRiVFNiVBNCU5QyVFNSU4NyVCQSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZjVjMGRhNDU3YWVjY2ViMzA2OWNmY2UyNzk4OWVmZDU%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweXViYSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZWY5MmZhZmU4NmMwZjQwODc0Yzc2MzE2YTEwY2FiMTE%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Ddd617f460096004fea4a5da176352e90)