Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JJUG CCC 2018 fall LT
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
pawn-4-git
December 15, 2018
92
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JJUG CCC 2018 fall LT
pawn-4-git
December 15, 2018
More Decks by pawn-4-git
See All by pawn-4-git
JJUG CCC 懇親会LT用資料
pawn4sd
0
130
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Technical Leadership for Architectural Decision Making
baasie
3
600
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
220
Are puppies a ranking factor?
jonoalderson
2
4.1k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Chasing Engaging Ingredients in Design
codingconduct
0
360
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
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