์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- tasknumber
- screen program
- Import
- ์ค๋ฒ3
- PRD
- Function Module
- SAP
- ์๋ฐฉํฅํ์
- ์๊ณ ๋ฆฌ์ฆ
- call function
- ์คํธ๋ญ์ฒ
- t์ฝ๋
- select
- ๋ฐฑ์ค
- ๊น์ด์ฐ์ ํ์
- subscreen
- Internal Table
- ์ค๋ฒ2
- ๋จ๋ฐฉํฅํ์
- qas
- ๋๋น์ฐ์ ํ์
- abap dictionary
- Export
- ๋ชจ๋ํ
- screen
- ์ด๋ถํ์
- dev
- ABAP
- modify
- structure
- Today
- Total
CS Student’s SAP&Tech Journey๐ซ
[SAP] LOCK ์ฒ๋ฆฌ ๋ฐฉ๋ฒ- ENQUEUE / DEQUEUE / SM12 ๋ณธ๋ฌธ
SAP์์ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ฉด ๋ฐ์ดํฐ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด SAP์์๋ ๋ ผ๋ฆฌ์ Lock(์ ๊ธ) ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ SAP ํ๋ก๊ทธ๋จ ๋ด์์ Lock ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค์ต ์์ ์ ํจ๊ป ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
1๏ธโฃ SAP์์์ Lock์ด๋?
Lock(์ ๊ธ)์ ๋์ผํ ๋ฐ์ดํฐ์ ๋ํด ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์์ ์ ๊ทผ(ํนํ ์์ )ํ์ง ๋ชปํ๋๋ก ๋ง๋ ๊ธฐ๋ฅ์ ๋๋ค.
SAP์์๋ Lock์ ๋ ๊ฐ์ง๋ก ๊ตฌ๋ถํฉ๋๋ค.
๊ตฌ๋ถ | ์ค๋ช |
๋ฌผ๋ฆฌ์ Lock | DB ์ฐจ์์์ ์ค์ ๋๋ Lock. ํ๋ฉด์ด ๋ฐ๋๊ฑฐ๋ ์ปค๋ฐ๋๋ฉด ํด์ ๋จ |
๋ ผ๋ฆฌ์ Lock | SAP ๋ด๋ถ์์ ๊ด๋ฆฌํ๋ Lock. ์ฌ์ฉ์ ๊ฐ ๋ฐ์ดํฐ ์ถฉ๋ ๋ฐฉ์ง์ ์ฌ์ฉ๋จ |
- SAP ํ๋ฉด์ด ๋ฐ๋ ๋๋ง๋ค ์๋ ์ปค๋ฐ(Auto Commit) ๋ฐ์
- ์ด๋ ๋ฌผ๋ฆฌ์ Lock์ ํด์ ๋๋ฏ๋ก, SAP์์๋ ๋ฐ๋์ ๋ ผ๋ฆฌ์ Lock์ ์ฌ์ฉํด์ผ ํจ!
2๏ธโฃ Lock ๊ฐ์ฒด ์์ฑ (SE11)
SAP์์ Lock์ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ Lock Object๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
๐ T-CODE: SE11
→ Lock Object ์ ํ
→ ์์ : EZCONN_07 (SPFLI ํ
์ด๋ธ์ CARRID, CONNID๋ฅผ Lock ๊ฑธ๊ธฐ ์ํด ์์ฑ)
3๏ธโฃ ENQUEUE / DEQUEUE ํจ์ ํ์ธ
Lock Object๋ฅผ ์์ฑํ๋ฉด ์๋์ผ๋ก ์๋ ๋ ๊ฐ์ ํจ์๊ฐ ์์ฑ๋ฉ๋๋ค.
- ENQUEUE_EZCONN_07: Lock์ ๊ฑฐ๋ ํจ์
- DEQUEUE_EZCONN_07: Lock์ ํด์ ํ๋ ํจ์
๐ T-CODE: SE37
→ ํจ์ ํ์ธ ๊ฐ๋ฅ
→ GOTO > Lock Modules ํตํด ์ฐ๊ฒฐ๋ Lock Object ํ์ธ ๊ฐ๋ฅ
4๏ธโฃ ์ค์ต ์์
๐์์ ๋ฒํผ ๋๋ฅผ ๋ → Lock ๊ฑธ๊ธฐ
WHEN 'UPDA'. "์์
GV_MODE = 'U'.
CALL FUNCTION 'ENQUEUE_EZCONN_07'
EXPORTING
CARRID = SDYN_CONN-CARRID
CONNID = SDYN_CONN-CONNID
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3.
CASE SY-SUBRC.
WHEN 0.
LEAVE TO SCREEN 200. " ์์ ํ๋ฉด ์ง์
"
WHEN 1.
MESSAGE 'This Fligtht connection is being edited by someone else' TYPE 'I'.
WHEN OTHERS.
MESSAGE 'SYSTEM ERROR' TYPE 'I'.
ENDCASE.
๐๋ค๋ก ๊ฐ๊ธฐ(BACK) ๋๋ฅผ ๋ → Lock ํด์ ํ๊ธฐ
WHEN 'BACK'.
IF GV_MODE = 'U'.
CALL FUNCTION 'DEQUEUE_EZCONN_07'
EXPORTING
CARRID = SDYN_CONN-CARRID
CONNID = SDYN_CONN-CONNID.
ENDIF.
LEAVE TO SCREEN 100.
5๏ธโฃ Lock Mode ์ ๋ฆฌ
LCOK MODE | ์ค๋ช |
E (๊ธฐ๋ณธ๊ฐ) | Write Lock: ๋ณ๊ฒฝ ๊ฐ๋ฅ, ์ค๋ณต ํ์ฉ |
S | Read Lock: ์ฝ๋ ๋์ ๋ค๋ฅธ ์ฌ๋์ ์์ ๋ถ๊ฐ |
X | Exclusive Lock: ๋ณ๊ฒฝ ๊ฐ๋ฅ, ์ค๋ณต ๋ถ๊ฐ |
- A๊ฐ E๋ X ๋ชจ๋๋ก Lock ๊ฑธ๋ฉด → B๋ ์ ๊ทผ ๋ถ๊ฐ
- A๊ฐ S ๋ชจ๋๋ก Lock ๊ฑธ๋ฉด → B๋ S๋ ๊ฐ๋ฅํ์ง๋ง, E, X๋ ๋ถ๊ฐ
6๏ธโฃ SM12 - Lock ํ ์ด๋ธ ํ์ธ
๐ T-CODE: SM12
→ ํ์ฌ ์์คํ
์ ๊ฑธ๋ ค์๋ Lock ์ํ ํ์ธ ๊ฐ๋ฅ
→ Lock์ด ํ๋ฆฌ์ง ์์์ ๊ฒฝ์ฐ ์๋์ผ๋ก ํด์ ๊ฐ๋ฅ
7๏ธโฃ LOCK ํจ์์ ํ๋ผ๋ฏธํฐ ์ฃผ์ ์ต์
ํ๋ผ๋ฏธํฐ | ์ค๋ช |
_WAIT | Lock์ด ๋์ด ์์ ๋ ๊ธฐ๋ค๋ ธ๋ค๊ฐ Lock ๊ฑธ์ง ์ฌ๋ถ |
_COLLECT | ์ฌ๋ฌ ๊ฐ์ Lock์ ํ ๋ฒ์ ์ฒ๋ฆฌํ ์ง ์ฌ๋ถ |
_SCOPE | Lock ๋ฒ์. ๊ธฐ๋ณธ๊ฐ์ 2 (Local to task) |