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
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
830
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
Context Engineering - Making Every Token Count
addyosmani
9
660
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Speed Design
sergeychernyshev
33
1.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
The browser strikes back
jonoalderson
0
390
What's in a price? How to price your products and services
michaelherold
247
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
What does AI have to do with Human Rights?
axbom
PRO
0
2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
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