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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
Skip the Path - Find Your Career Trail
mkilby
0
57
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
280
Navigating Team Friction
lara
192
16k
Amusing Abliteration
ianozsvald
0
100
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
Building an army of robots
kneath
306
46k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
It's Worth the Effort
3n
188
29k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
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