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
Designing Experiences People Love
moore
144
24k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Amusing Abliteration
ianozsvald
0
100
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Six Lessons from altMBA
skipperchong
29
4.2k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
エンジニアに許された特別な時間の終わり
watany
106
230k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
97
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
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