๊ด€๋ฆฌ ๋ฉ”๋‰ด

CS Student’s SAP&Tech Journey๐Ÿ’ซ

[SAP] LOCK ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•- ENQUEUE / DEQUEUE / SM12 ๋ณธ๋ฌธ

SAP/๋ฝ LOCK

[SAP] LOCK ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•- ENQUEUE / DEQUEUE / SM12

์ธํฌ๋งˆํ‹ฑ 2025. 4. 1. 16:06

SAP์—์„œ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด SAP์—์„œ๋Š” ๋…ผ๋ฆฌ์  Lock(์ž ๊ธˆ) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” SAP ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ Lock ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹ค์Šต ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

https://help.sap.com/doc/saphelp_nw73ehp1/7.31.19/en-us/cf/21eed9446011d189700000e8322d00/frameset.htm

 


 

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)