Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JJUG CCC 2018 fall LT
Search
pawn-4-git
December 15, 2018
0
87
JJUG CCC 2018 fall LT
pawn-4-git
December 15, 2018
Tweet
Share
More Decks by pawn-4-git
See All by pawn-4-git
JJUG CCC 懇親会LT用資料
pawn4sd
0
120
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Building Adaptive Systems
keathley
44
2.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
430
Transcript
JPAで困っています・・・
自己紹介 • Twitter @pawn_4_t • 都内のSier 7年目 • ECサイトの構築を行っています
今日の内容 • Javaを使ってアプリケーションを作っていたときに 発生した問題 • (解決していないので何か情報があればください)
突然ですが こんなことを言われました
突然ですが こんなことを言われました 「DBのロックが効かないんだけど」
環境 • GlassFish • Java8 • JPA • PostgreSQL
実装 • DBのテーブルの1レコードを取得する • 取得時にロックをかける • データを更新 • DB反映する
実装
実装
動かしてみると・・・
動かしてみると・・・ • 別のトランザクション(GUIツール)からSQLを実行
動かしてみると・・・ • 別のトランザクション(GUIツール)からSQLを実行 →ロックがかかっているはずのデータが取得できる • 更新(UPDATE)も実行できる
動かしてみると・・・ • 別のトランザクション(GUIツール)からSQLを実行 →ロックがかかっているはずのデータが取得できる • 更新(UPDATE)も実行できる • ということは、アプリからSQLが実行されていない?
動かしてみると・・・ • SQLが実行されていないとすると 先にロックを取得していても実行されるはず
動かしてみると・・・ • SQLが実行されていないとすると 先にロックを取得していても実行されるはず
動かしてみると・・・ • SQLが実行されていないとすると 先にロックを取得していても実行されるはず →実験してみるとアプリ側はSELECT前に止まる
動かしてみると・・・ • SQLが実行されていないとすると 先にロックを取得していても実行されるはず →当然別トランザクションをコミットすると… 次のブレイクポイントまで進む
まとめ • 本当はこの場で解決した結果を発表したかったの ですが、原因がわかりませんでした • SQLが実行されているにもかかわらず、ロックがか からない事象について何かご存知のかたがいらっ しゃいましたら教えてください • Twitter
pawn_4_t