C External Procedure ์์ฑ
C External Procedure๋ฅผ ์์ฑํ๋ ์ ์ฐจ๋ฅผ ๊ธฐ๋ณธ ํ๊ฒฝ ์ค์ ๊ณผ ์์ฑ ์ ์ฐจ ๋จ๊ณ๋ก ๋๋์ด ์ค๋ช
ํฉ๋๋ค.
๊ธฐ๋ณธ ํ๊ฒฝ ์ค์
C External Procedure๋ ์ด์ ์ฅ์์๋ ์ธ๊ธํ๋ฏ์ด tbEPA ํ๋ก์ธ์ค์ ์ํด ์ํ๋ฉ๋๋ค. tbEPA ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ $TB_HOME/client/bin ๋๋ ํฐ๋ฆฌ์ ์กด์ฌํฉ๋๋ค.
๋ณธ ์ ์์๋ C External Procedure๋ฅผ ์์ฑํ๊ธฐ์ ์์ ๋จผ์ tbEPA ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ธฐ ์ํ ๊ธฐ๋ณธ ํ๊ฒฝ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค.
์ด๊ธฐํ ํ๋ผ๋ฏธํฐ
tbEPA ํ๋ก์ธ์ค๋ ์ฒ์ ์คํ๋ ๋ ์ฌ์ฉ์๊ฐ ์ค์ ํ ์ด๊ธฐํ ํ๋ผ๋ฏธํฐ๋ฅผ ๋จผ์ ํ์ธํฉ๋๋ค. ์ด๊ธฐํ ํ๋ผ๋ฏธํฐ ๋ $TB_HOME/client/tbepa ๋๋ ํฐ๋ฆฌ์ tbepa.cfg ํ์ผ์์ ์ค์ ํ ์ ์์ผ๋ฉฐ, ๋ง์ฝ ์ค์ ํ ์ด๊ธฐํ ํ๋ผ๋ฏธ ํฐ๊ฐ ์์ผ๋ฉด ๋ํดํธ๋ก ์ ์๋ ์์ฑ์ ๋ฐ๋ฅด๊ฒ ๋ฉ๋๋ค.
tbEPA ํ๋ก์ธ์ค์ ์คํ๊ณผ ๊ด๋ จํ์ฌ ์ฌ์ฉ์๊ฐ ์ค์ ํ ์ ์๋ ์ด๊ธฐํ ํ๋ผ๋ฏธํฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<<tbepa.cfg>>
์ด๊ธฐํ ํ๋ผ๋ฏธํฐ
์ค๋ช
tbepa.cfg ํ์ผ์์ ์ด๊ธฐํ ํ๋ผ๋ฏธํฐ LOG_LVL์ 1๋ถํฐ 5 ์ฌ์ด์ ๋ก๊ทธ ๋ ๋ฒจ์ ๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค. ๊ฐ ๋ก๊ทธ ๋ ๋ฒจ์ ๋ํ ์ค๋ช
์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ก๊ทธ ๋ ๋ฒจ
๋ก๊ทธ ๋ ๋ฒจ๋ช
์ค๋ช
C External Procedure๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ์ธ๋ถ ์ ์ฐจ๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
์ฌ์ฉ์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ
์ฌ์ฉ์ ํจ์๋ฅผ PSM์ ๋์
์ฌ์ฉ์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ
C ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋์ ์ผ๋ก ํธ์ถํ ์ ์๋ ์ฌ์ฉ์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. ์์ฑํ๋ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
C ํจ์๋ฅผ ์์ฑํฉ๋๋ค.
<<extproc.c>>
์ปดํ์ผ์ ์ํํฉ๋๋ค.
๋ค์์ UNIX ๊ณ์ด(LINUX ํฌํจ)์์ ์ปดํ์ผ์ ์ํํ๋ ์์
๋๋ค.
์ปดํ์ผ์ด ์๋ฃ๋๋ฉด, libextproc.so๋ผ๋ ์ฌ์ฉ์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ฑ๋ฉ๋๋ค.
Library Object ๋ฑ๋ก
Library Object๋ ์ฌ์ฉ์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ Tibero์ ๋์์ํค๋ ๊ฒ์ผ๋ก ์ผ์ข
์ ์คํค๋ง ๊ฐ์ฒด๋ฅผ ์๋ฏธ ํฉ๋๋ค.
Library Object๋ฅผ ๋ฑ๋กํ๋ ๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ค์์ ์์ฑํ ์ฌ์ฉ์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ ์ด์ฉํ์ฌ 'extproc'์ด๋ผ๋ Library Object๋ฅผ Tibero์ ๋ฑ๋ก ํ๋ ์์
๋๋ค.
์ฌ์ฉ์ ํจ์๋ฅผ PSM์ ๋์
Library Object๋ฅผ ๋ฑ๋กํ ํ ํด๋น Library Object ๋ด์ ํน์ ํจ์๋ฅผ PSM ๊ฐ์ฒด๋ก ๋ฑ๋กํ๋ฉด C External Proce dure๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ ์ผ๋ฐ์ ์ธ PSM๋ฅผ ์ฌ์ฉํ๋ ์ธํฐํ์ด์ค ๊ทธ๋๋ก ํจ์๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค.
๋ค์์ ์ผ๋ฐ์ ์ธ PSM๋ฅผ ์ ์ธํ๋ ๋ฌธ๋ฒ์
๋๋ค.
๋ค์์ Library Object ๋ด์ ํน์ ํจ์(find_max)๋ฅผ PSM์ ๋์ํ๋ ์์
๋๋ค.
์ฌ์ฉ์ ํจ์ ์คํ
์ฌ์ฉ์ ํจ์๋ Tibero์์ ํ๋์ PSM์ ๋์๋๋ฏ๋ก, PSM์ ๋ฌธ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์์ PSM์ ๋ฌธ๋ฒ์ ์ด์ฉํ์ฌ C External Procedure๋ฅผ ์คํํ๋ ์์
๋๋ค.