Oracle8 Administrator's Reference for LINUX
Release 8.0.5

A66585-01

Library

Product

Contents

Index

Prev Next

5
¸®´ª½º¿¡¼­ ¿À¶óŬ Àü󸮱â¿Í ¿À¶óŬ È£Ãâ ÀÎÅÍÆäÀ̽º ÀÌ¿ëÇϱâ

¿À¶óŬ Àü󸮱âÀÇ °³¿ä

¿À¶óŬ Àü󸮱â´Â °í±Þ ¾ð¾î·Î ¾²¿©Áø ÇÁ·Î±×·¥µé°ú ¿À¶óŬ µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ SQL¸í·É¹®À» °áÇÕ½ÃŰ´Â ¾îÇø®ÄÉÀ̼ÇÀ» ¼³°èÇÏ´Â ÅøÀÌ´Ù. ¿À¶óŬ Àü󸮱â´Â ANSI SQL°ú ȣȯµÈ´Ù. ±×¸®°í ¿À¶óŬ8¿¡¼­ ½ÇÇàµÇ´Â °³¹æÇü, ¸ÂÃãÇü ¾îÇø®ÄÉÀÌ¼Ç ¶Ç´Â ´Ù¸¥ ANSI SQL DBMS¸¦ °³¹ßÇϴµ¥ ¾²ÀδÙ.

Àü󸮱⠽ÇÇàÆÄÀÏÀ» Relink Çϱâ

¸ðµç Àü󸮱⠽ÇÇàÆÄÀÏÀº makefile Áï, $ORACLE_HOME/precomp/lib/ins_precomp.mk¸¦ ÀÌ¿ëÇÏ¿© Relink µÈ´Ù. make¸í·É¾î´Â ´ÙÀ½ ¹æ½ÄÀ¸·Î »ç¿ëÇÑ´Ù.

$ make -f ins_precomp.mk relink EXENAME=executable

ÀÌ ¸í·É¾î´Â $ORACLE_HOME/precomp/lib µð·ºÅ丮¿¡¼­ »õ·Î¿î ½ÇÇàÆÄÀÏÀ» ¸¸µé¾î ³¾ °ÍÀÌ´Ù. ±× ´ÙÀ½¿¡ $ORACLE_HOME/bin µð·ºÅ丮·Î ±×°ÍÀ» ¿Å±ä´Ù. ±×°ÍÀ» $ORACLE_HOME/bin·Î ¿Å±âÁö ¾Ê°í »õ·Î¿î ½ÇÇàÆÄÀÏÀ» ¸¸µé·Á¸é, ´ÙÀ½ ¸í·É¾î¸¦ ÀÌ¿ëÇÑ´Ù:

$ make -f ins_precomp.mk executable

¿©±â¼­ »ç¿ëÇÏ´Â Á¦Ç°¿¡ µû¶ó ½ÇÇàÆÄÀÏÀÇ À̸§Àº Talbe 5-1·Î ºÎÅÍ °áÁ¤µÉ ¼ö ÀÖ´Ù.

Table 5-1 Á¦Ç°°ú ½ÇÇàÆÄÀÏ À̸§µé°úÀÇ °ü°è
Á¦Ç°   ½ÇÇàÆÄÀÏ  

Pro*C/C++

 

proc

 

Object Type Translator

 

ott

 

¿¹¸¦ µé¾î, Pro*C/C++ ½ÇÇàÆÄÀÏÀ» relinkÇϱâ À§Çؼ­, ´ÙÀ½ ¸í·É¾î¸¦ ÀÌ¿ëÇÑ´Ù:

$ cd $ORACLE_HOME/precomp/lib
$ make -f ins_precomp.mk relink EXENAME=proc

Àü󸮱âÀÇ ¼³Á¤ ÆÄÀϵé

$ORACLE_HOME/precomp/admin¿¡´Â ¿©¼¸ °³ÀÇ .cfg ½Ã½ºÅÛ ¼³Á¤ ÆÄÀϵéÀÌ µé¾îÀÖ´Ù. À̵éÀº Table 5-2¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.

Table 5-2 ½Ã½ºÅÛ ¼³Á¤ÆÄÀϵé
Á¦Ç°   ¼³Á¤ÆÄÀÏ  

Pro*C/C++ v8.0.5

 

pcscfg.cfg

 

Object Type Translator v8.0.5

 

ottcfg.cfg

 

¸ðµç Àü󸮱⿡ ´ëÇÑ °øÅëÀûÀÎ ¹®Á¦Á¡

´ë¹®ÀÚÀÇ ¼Ò¹®ÀÚ º¯È¯

C ÀÌ¿ÜÀÇ ¾ð¾î¿¡¼­, ¿©·¯ºÐµéÀÌ »ç¿ëÇÏ´Â ÄÄÆÄÀÏ·¯´Â ´ë¹®ÀÚ·Î µÈ ÇÔ¼ö ¶Ç´Â ºÎÇÁ·Î±×·¥(subprogram)ÀÇ À̸§À» ¼Ò¹®ÀÚ·Î º¯È¯ÇÑ´Ù. À̰ÍÀº "No such user exit" ¿¡·¯ÀÇ ¿øÀÎÀÌ µÈ´Ù. ÀÌ·¸ÇÑ °æ¿ì ¿©·¯ºÐµéÀÇ ¿É¼ÇÆÄÀÏ¿¡ ÀÖ´Â ÇÔ¼ö ¶Ç´Â ºÎÇÁ·Î±×·¥ÀÇ À̸§°ú iapxtb Å×À̺íÀÇ °ÍÀ» ´ë¼Ò¹®ÀÚ¸¦ ºñ±³Çؼ­ È®ÀÎÇØ º»´Ù.

¹ê´õ µð¹ö°Å ÇÁ·Î±×·¥

Àü󸮱â¿Í ¾÷ÀÚµéÀÌ °ø±ÞÇÏ´Â µð¹ö°Å(debugger)µéÀº ¾Æ¸¶ ȣȯÀÌ µÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ¿À¶óŬ»ç´Â µð¹ö°ÅÇÏ¿¡¼­ ½ÇÇàµÇ´Â ¾î¶² ÇÁ·Î±×·¥ÀÌ ¿î¿µÃ¼Á¦ÇÏ¿¡¼­µµ °°Àº ¹æ¹ýÀ¸·Î ½ÇÇàµÉ °ÍÀ̶ó´Â °ÍÀ» º¸ÁõÇÏÁö ¾Ê´Â´Ù.

ireclen and oreclen ÀÇ °ª

The ireclen °ú oreclen º¯¼öµéÀº ÃÖ´ë°ªÀ» °¡Áö°í ÀÖÁö ¾Ê´Ù.

Ãß°¡¹®¼­(Supplemental Documentation)

´ÙÀ½ ¹®¼­µéÀº Àü󸮱â¿Í ÀÎÅÍÆäÀ̽º Ư¡¿¡ ´ëÇÏ¿© Ãß°¡ÀûÀÎ Á¤º¸¸¦ Á¦°øÇÑ´Ù:

Pro*C/C++

Pro*C/C++ release 8.0.5¿¡ °üÇÑ Ãß°¡ÀûÀÎ Á¤º¸¸¦ À§Çؼ­´Â, $ORACLE_HOME/precomp/doc/proc2/readme.doc¿¡ ÀÖ´Â README ÆÄÀÏÀ» ÂüÁ¶Ç϶ó.

Pro*C/C++ °ü¸®Çϱâ

½Ã½ºÅÛ ¼³Á¤ ÆÄÀÏ

Pro*C/C++ ½Ã½ºÅÛ ¼³Á¤ ÆÄÀÏÀº $ORACLE_HOME/precomp/admin/pcscfg.cfgÀÌ´Ù.

Pro*C/C++ »ç¿ëÇϱâ

Pro*C/C++À» »ç¿ëÇϴµ¥ ¾Õ¼­, ¿î¿µÃ¼Á¦ÀÇ Á¤È®ÇÑ ¹öÀü¿¡ ¸Â´Â ÄÄÆÄÀÏ·¯°¡ ¿Ã¹Ù¸£°Ô ¼³Ä¡µÇ¾ú´ÂÁö È®ÀÎÇØ¶ó. ¿ä±¸µÇ´Â ¿î¿µÃ¼°èÀÇ ¹öÀüÀº Oracle8 Installation Guide for LINUXÀÇ Chapter1¿¡ ±â¼úµÇ¾î ÀÖ´Ù.

Demo ÇÁ·Î±×·¥µé(Demonstration Programs)

Pro*C/C++ÀÇ ´Ù¾çÇÑ ±â´ÉÀ» º¸¿©ÁÖ±â À§ÇÑ Demo ÇÁ·Î±×·¥µéÀÌ µÇ¾î ÀÖ´Ù. 3°¡Áö Á¾·ùÀÇ Demo ÇÁ·Î±×·¥µéÀÌ ÀÖ´Ù: C, C++ ±×¸®°í Object Program - ÈÄÀÚ´Â Oracle8ÀÇ °´Ã¼»ç¾çÀ» º¸¿©ÁØ´Ù. ¸ðµç Demo ÇÁ·Î±×·¥µéÀº $ORACLE_HOME/precomp/demo/proc¿¡ À§Ä¡ÇØ ÀÖ°í, ¸ðµç ÇÁ·Î±×·¥µéÀº ÆÐ½º¿öµå°¡ TIGERÀÎ SCOTT½ºÅ°¸¶ ¾È¿¡ Á¸ÀçÇÏ´Â $ORACLE_HOME/sqlplus/demo/demobld.sql¿¡ ÀÇÇØ¼­ Demo Å×À̺íÀÌ ¸¸µé¾îÁ³´Ù°í °¡Á¤ÇÑ´Ù.

SQL*Plus¿¡¼­ »ç¿ëµÇ´Â Demo ÇÁ·Î±×·¥µéÀ» ¸¸µå´Â ´õ ³ªÀº Á¤º¸¸¦ ¾ò±â À§Çؼ­´Â, ÀÌ Ã¥ÀÇ page 4-3¿¡ ÀÖ´Â "Demonstration Tables" À» º¸¸é µÈ´Ù. Demo ÇÁ·Î±×·¥µé¿¡ ´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â Programmer's Guide to the Pro*C/C++ Precompiler ¸¦ ÂüÁ¶Ç϶ó.

$ORACLE_HOME/precomp/demo/proc/demo_proc.mk¶ó´Â makefileÀº Demo ÇÁ·Î±×·¥µéÀ» ¸¸µå´Âµ¥ »ç¿ëµÇ¾î¾ß¸¸ ÇÑ´Ù. ¿¹¸¦µé¾î, sample1 Demo ÇÁ·Î±×·¥À» ÇÁ¸®ÄÄÆÄÀÏ, ÄÄÆÄÀÏ ¶Ç´Â link Çϱâ À§Çؼ­´Â ´ÙÀ½ ¸í·É¾î¸¦ ÀÔ·ÂÇÑ´Ù.

$ make -f demo_proc.mk sample1

´Ù¸¥ ¹æ¹ýÀ¸·Î ´ÙÀ½ ¸í·É¾î¸¦ ÀÌ¿ëÇÒ ¼ö Àִµ¥, Á»´õ ¸íÈ®ÇÑ ¹®¹ýÀ» »ç¿ëÇØ¾ß¸¸ÀÌ Á¤È®È÷ °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

$ make -f demo_proc.mk build OBJS=sample1.o EXE=sample1

±âº»ÀûÀ¸·Î ¸ðµç ÇÁ·Î±×·¥µéÀº $ORACLE_HOME/lib/libclntsh.so ¶ó´Â Ŭ¶óÀÌ¾ðÆ® °øÀ¯ ¶óÀ̺귯¸®¿Í µ¿ÀûÀ¸·Î link µÇ¾î ÀÖ´Ù.

Pro*C/C++ÀÇ ¸ðµç C Demo ÇÁ·Î±×·¥µéÀ» ¸¸µé±â À§Çؼ­, ´ÙÀ½ ¸í·É¾î¸¦ ÀÔ·ÂÇÑ´Ù:

$ make -f demo_proc.mk samples

Pro*C/C++ÀÇ ¸ðµç C++ Demo ÇÁ·Î±×·¥µéÀ» ¸¸µé±â À§Çؼ­, ÀÌ ¸í·É¾î¸¦ ÀÔ·ÂÇÑ´Ù:

$ make -f demo_proc.mk cppsamples

Pro*C/C++ÀÇ ¸ðµç Object Demo ÇÁ·Î±×·¥µéÀ» ¸¸µé±â À§Çؼ­, ´ÙÀ½ ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù:

$ make -f demo_proc.mk object_samples

ÀϺΠDemo ÇÁ·Î±×·¥µéÀ» ½ÇÇàÇϱâ À§Çؼ­´Â $ORACLE_HOME/precomp/demo/sql¿¡ ÀÖ´Â SQL ½ºÅ©¸³Æ®¸¦ ¿ä±¸ÇÑ´Ù. ÀÌ·± Demo ÇÁ·Î±×·¥À» ¸¸µé°í, ÇØ´ç SQL script¸¦ ½ÇÇàÇϱâ À§Çؼ­´Â make ¸ÅÅ©·Î ÀÎÀÚ RUNSQL=runÀ» ¸íÇüÇà¿¡ Æ÷ÇÔ½ÃÄÑ Áà¾ß¸¸ ÇÑ´Ù. ¿¹¸¦ µé¸é, calldemo Demo ÇÁ·Î±×·¥À» »ý¼ºÇÏ°í ½ÇÇàÇϱâ À§Çؼ­´Â $ORACLE_HOME/precomp/demo/sql/calldemo.sql ¶ó´Â ½ºÅ©¸³Æ®°¡ ÇÊ¿äÇÏ´Ù. ´ÙÀ½°ú °°ÀÌ ¸íÇüÀ» ÀÔ·ÂÇÑ´Ù:

$ make -f demo_proc.mk calldemo RUNSQL=run

´Ù¸¥ ¿¹·Î, ¸ðµç Object Demo ÇÁ·Î±×·¥µéÀ» ¸¸µé°í ½ÇÇàÇϱâ À§Çؼ­´Â ÇØ´ç SQL ½ºÅ©¸³Æ®¸¦ ÀüºÎ ÇÊ¿ä·Î ÇÑ´Ù. ´ÙÀ½ ¸í·É¾î¸¦ ÀÔ·ÂÇÑ´Ù.

$ make -f demo_proc.mk object_samples RUNSQL=run

ÇÊ¿äÇÏ´Ù¸é SQL ½ºÅ©¸³Æ®¸¦ ¼öµ¿À¸·Î ½ÇÇàÇÒ ¼öµµ ÀÖ´Ù.

»ç¿ëÀÚ ÇÁ·Î±×·¥(User Programs)

$ORACLE_HOME/precomp/demo/proc/demo_proc.mk¶ó´Â makefileÀº »ç¿ëÀÚ ÇÁ·Î±×·¥µéÀ» ¸¸µå´Âµ¥ »ç¿ëµÈ´Ù. demo_proc.mk¿Í »ç¿ëÀÚ ÇÁ·Î±×·¥µéÀ» link Çϱâ À§ÇÑ ÀϹÝÀûÀÎ ¹®¹ýÀº ´ÙÀ½°ú °°´Ù:

$ make -f demo_proc.mk target OBJS="objfile1 objfile2 ..." \
EXE=exename

¿¹¸¦ µé¾î, Pro*C/C++ ¼Ò½ºÀÎ myprog.pc·Î ºÎÅÍ myprog ÇÁ·Î±×·¥À» ¸¸µé±â À§Çؼ­´Â ¼Ò½º¿Í ¿øÇÏ´Â ½ÇÇàÆÄÀÏÀÇ ÇüÅ¿¡ µû¶ó ´ÙÀ½ ¸í·É¾î Áß Çϳª¸¦ ÀÌ¿ëÇÑ´Ù.

C ¼Ò½º¸¦ Ŭ¶óÀÌ¾ðÆ® °øÀ¯ ¶óÀ̺귯¸®¿Í µ¿ÀûÀ¸·Î link ÇÑ´Ù:

$ make -f demo_proc.mk build OBJS=myprog.o EXE=myprog

C ¼Ò½º¿¡¼­ Á¤ÀûÀ¸·Î link ÇÑ´Ù:

$ make -f demo_proc.mk build_static OBJS=myprog.o EXE=myprog

C++¼Ò½º¸¦ client shared library¿Í µ¿ÀûÀ¸·Î linkÇÑ´Ù:

$ make -f demo_proc.mk cppbuild OBJS=myprog.o EXE=myprog

C++¼Ò½º¸¦ Á¤Àû link ÇÑ´Ù:

$ make -f demo_proc.mk cppbuild_static OBJS=myprog.o EXE=myprog

¸®´ª½º¿¡¼­ °øÀ¯ ¶óÀ̺귯¸® »ç¿ë¿¡ °üÇÑ ¹®Á¦´Â LINUX ¹®¼­¸¦ Âü°íÇÑ´Ù.

¿À¶óŬ È£Ãâ ÀÎÅÍÆäÀ̽º

Oracle Call Interface »ç¿ëÇϱâ

Oracle Call Interface (OCI)¸¦ »ç¿ëÇϱâ Àü¿¡, ÄÄÆÄÀÏ·¯°¡ ÀûÀýÇÏ°Ô ¼³Ä¡µÇ¾ú´ÂÁö Á¤È®ÇÑ ¹öÁ¯À» È®ÀÎÇ϶ó. ¿©·¯ºÐµéÀÇ ¿î¿µÃ¼Á¦¿¡ µû¶ó ¿ä±¸µÇ´Â ¹öÀüÀº Oracle8 Installation Guide for LINUX ÀÇ Chapter 1¿¡ ¸í½ÃµÇ¾î ÀÖ´Ù.

Demo ÇÁ·Î±×·¥µé

OCIÀÇ ´Ù¾çÇÑ ±â´ÉÀ» º¸¿©ÁÖ´Â Demo ÇÁ·Î±×·¥µéÀÌ Á¦°øµÈ´Ù. Demo ÇÁ·Î±×·¥µéÀº C, C++ 2°¡Áö Á¾·ù·Î ÁغñµÇ¾î ÀÖ´Ù. ¸ðµç Demo ÇÁ·Î±×·¥µéÀº $ORACLE_HOME/rdbms/demo¿¡ À§Ä¡ÇØ ÀÖ´Ù. ´ëºÎºÐÀÇ Demo ÇÁ·Î±×·¥µéÀº ÆÐ½º¿öµå°¡ TIGERÀÎ SCOTT½ºÅ°¸¶ ¾È¿¡ Á¸ÀçÇÏ´Â $ORACLE_HOME/sqlplus/demo/demobld.sql¿¡ ÀÇÇØ¼­ Demo Å×À̺íÀÌ ¸¸µé¾îÁ³´Ù°í °¡Á¤ÇÑ´Ù.

SQL*Plus¿¡¼­ »ç¿ëµÇ´Â Demo ÇÁ·Î±×·¥µéÀ» ¸¸µå´Â º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¾ò±â À§Çؼ­´Â, ÀÌ Ã¥ÀÇ page 4-3¿¡ ÀÖ´Â "Demonstration Tables"À» º¸¸é µÈ´Ù.

Âü°í:

Demo ÇÁ·Î±×·¥¿¡ ´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â Programmer's Guide to the Oracle Call Interface¿Í ´Ù¸¥ ÇÁ·Î±×·¥ÀÇ ¼¼ºÎÇ׸ñ ÇÁ·Î±×·¥ ¼Ò½º¸¦ º¸¸é µÈ´Ù.

µ¥¸ð ÇÁ·Î±×·¥À» ¸¸µé±â À§ÇØ $ORACLE_HOME/rdbms/demo/demo_rdbms.mk makefileÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, cdemo1 µ¥¸ð ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇϰí, link Çϱâ À§Çؼ­´Â ´ÙÀ½ ¸í·É¾î¸¦ ÀÔ·ÂÇÑ´Ù:

$ make -f demo_rdbms.mk cdemo1

´Ù¸¥ ¹æ¹ýÀ¸·Î, ´ÙÀ½ ¸í·É¾î¸¦ ÀÌ¿ëÇϼö µµ ÀÖ´Ù. À̰ÍÀº Á»´õ ¸íÈ®ÇÑ ¹®¹ýÀ¸·Î ±â¼úÇØ Áà¾ß¸¸ÀÌ Á¤È®È÷ °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù:

$ make -f demo_rdbms.mk build OBJS=cdemo1.o EXE=cdemo1

±âº»ÀûÀ¸·Î ¸ðµç ÇÁ·Î±×·¥µéÀº $ORACLE_HOME/lib/libclntsh.so client shared library¿Í µ¿ÀûÀ¸·Î linkµÇ¾îÀÖ´Ù.

¸ðµç OCI C Demo ÇÁ·Î±×·¥µéÀ» ¸¸µé±â À§Çؼ­´Â ´ÙÀ½ ¸í·É¾î¸¦ ÀÔ·ÂÇÑ´Ù:

$ make -f demo_rdbms.mk demos

¸ðµç OCI C++ Demo ÇÁ·Î±×·¥µéÀ» ¸¸µé±â À§Çؼ­´Â ÀÌ ¸í·É¾î¸¦ ÀÔ·ÂÇÑ´Ù:

$ make -f demo_rdbms.mk c++demos


Note:

¸¸¾à C++ÇÁ·Î±×·¥À» link ½ÃŰ´Â µ¿¾È¿¡ ´ÙÀ½°ú °°Àº ¿¡·¯°¡ »ý°å´Ù¸é:

ld: fatal: library -lsunmath: not found
ld: fatal: library -lC: not found
ld: fatal: library -lC_mtstubs: not found
ld: fatal: library -lcx: not found

¿©·¯ºÐµéÀÌ ¸í½ÃÇÑ ¶óÀ̺귯¸®°¡ Á¸ÀçÇÏ´Â µð·ºÅ丮¸¦ LD_LIBRARY_PATH¿¡ Æ÷ÇÔ½ÃÄÑ ÁÖ¾î¾ß ÇÑ´Ù.

 

¾î¶² Demo ÇÁ·Î±×·¥µéÀº ÇÁ·Î±×·¥ÀÌ ¼öÇàµÇ±â Àü¿¡ ¼öµ¿À¸·Î ½ÇÇà½Ã۱â À§Çؼ­ $ORALCE_HOME/rdbms/demo¿¡ ÀÖ´Â SQL ½ºÅ©¸³Æ®¸¦ ¿ä±¸ÇÑ´Ù. ´ëºÎºÐÀÇ °æ¿ì¿¡, SQL½ºÅ©¸³Æ® À̸§Àº ÇÁ·Î±×·¥ À̸§¿¡ .sql ºÙÀΰͰú °°´Ù. ¿¹¸¦ µé¾î, oci02 ÇÁ·Î±×·¥ÀÇ SQL ½ºÅ©¸³Æ®´Â oci.02.sql ÀÌ´Ù.

¾î¶°ÇÑ °æ¿ì¶óµµ SQL ½ºÅ©¸³Æ®°¡ ¿ä±¸µÇ¾îÁø´Ù°í °áÁ¤ÇÑ ÇÁ·Î±×·¥À» ½ÃÀÛÇÒ ¶§´Â ²ÀÁÖ¼®À» Àд´Ù.

»ç¿ëÀÚ ÇÁ·Î±×·¥(User Programs)

$ORACLE_HOME/rdbms/demo/demo_rdbms.mk makefileÀº »ç¿ëÀÚ ÇÁ·Î±×·¥À» ¸¸µå´Âµ¥ »ç¿ëµÈ´Ù. demo_rdbms.mk °¡ »ç¿ëÀÚ ÇÁ·Î±×·¥À» linkÇÏ´Â ÀϹÝÀûÀÎ ¹®¹ýÀº:

$ make -f demo_rdbms.mk target OBJS="objfile1 objfile2 ..." \
EXE=exename

¿¹¸¦ µé¾î, myprog.c C¾ð¾î ¼Ò½º·ÎºÎÅÍ myprog ÇÁ·Î±×·¥À» ¸¸µé±â À§Çؼ­´Â ¿ä±¸µÇ¾îÁö´Â ½ÇÇàÆÄÀÏÀÇ Å¸ÀÔ¿¡ µû¶ó¼­ ´ÙÀ½ ¸í·É¾î Áß¿¡ Çϳª¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù:

C ¼Ò½º°¡ client shared library¸¦ µ¿Àû link Çϱâ À§Çؼ­:

$ make -f demo_rdbms.mk build OBJS=myprog.o EXE=myprog

C ¼Ò½º°¡ Á¤Àû link Çϱâ À§Çؼ­:

$ make -f demo_rdbms.mk build_static OBJS=myprog.o EXE=myprog

myproc.cc C++ ¼Ò½º·ÎºÎÅÍ myprog ÇÁ·Î±×·¥À» ¸¸µé¶§:

C++ ¼Ò½º°¡ client shared library¸¦ µ¿Àû link Çϱâ À§Çؼ­:

$ make -f demo_rdbms.mk buildc++ OBJS=myprog.o EXE=myprog

C++ ¼Ò½º°¡ Á¤Àû link Çϱâ À§Çؼ­:

$ make -f demo_rdbms.mk buildc++_static OBJS=myprog.o EXE=myprog

Oracle Àü󸮱â¿Í ¿À¶óŬ È£Ãâ ÀÎÅÍÆäÀ̽ºÀÇ Link¿Í Makefileµé

»ç¿ëÀÚÁ¤ÀÇ Makefiles(Custom Makefiles)

Á¦°øµÈ demo_product.mk makefilesÀº À̹øÀåÀÇ Æ¯Â¡ÀûÀÎ Á¦Ç° ºÎºÐ¿¡¼­ ¹¦»çµÇ¾î ÀÖ´Â »ç¿ëÀÚ ÇÁ·Î±×·¥µéÀ» linkÇÒ ¶§ »ç¿ëÇÒ °ÍÀ» ±ÇÀåÇÑ´Ù. ¸¸¾à Á¦°øµÈ makefileÀ» º¯°æÇÏ´Â °ÍÀÌ ÇÊ¿äÇϰųª ¶Ç´Â »ç¿ëÀÚ°¡ ¸¸µç makefileÀ» »ç¿ëÇϱâ·Î Çß´Ù¸é ´ÙÀ½ Áö½Ã¿¡ µû¶ó¼­ ÇÑ´Ù:

Undefined Symbols

ÇÁ·Î±×·¥À» linkÇÒ ¶§ ÀϹÝÀûÀÎ ¿¡·¯´Â Á¤ÀǵÇÁö ¾Ê´Â symbolµé ¶§¹®ÀÌ´Ù. À̰ÍÀº ´ÙÀ½°ú ºñ½ÁÇÏ´Ù:

$ make -f demo_proc.mk sample1
Undefined                       first referenced
 symbol                             in file
sqlcex                              sample1.o
sqlglm                              sample1.o
ld: fatal: Symbol referencing errors. No output written to sample1

ÀÌ ¿¡·¯´Â linker°¡ ÂüÁ¶µÇ´Â symbolÀ» À§ÇÑ Á¤ÀǸ¦ ãÁö ¸øÇßÀ» ¶§ ÀϾ´Ù. ÀϹÝÀûÀ¸·Î ÀÌ·± Á¾·ùÀÇ ¹®Á¦¸¦ À§ÇÑ ÇØ°áÃ¥Àº Á¤Àǰ¡ Æ÷ÇԵǾî ÀÖ´Â link lineÀÌ Á¸ÀçÇÏ´Â ¶óÀ̺귯¸® ¶Ç´Â object ÆÄÀÏÀ» È®½ÇÇÏ°Ô ÇÏ´Â °ÍÀÌ´Ù. ±×¸®°í linker´Â ÆÄÀÏÀÌ µé¾îÀÖ´Â ±× µð·ºÅ丮¿¡¼­ ãÀ» ¼ö ÀÖ´Ù.

¿À¶óŬÀº ½Éº¼ÀÌ Á¤ÀǵǾî ÀÖ´Â °÷¿¡ ¶óÀ̺귯¸® ¶Ç´Â objectÆÄÀÏÀÌ À§Ä¡ÇÏ´Â °ÍÀ» µ½±â À§Çؼ­ symfind¸¦ È£ÃâÇÏ´Â À¯Æ¿¸®Æ¼¸¦ Á¦°øÇÑ´Ù. ¿©±â¿¡ sqlcex symbolÀÌ À§Ä¡ÇÑ °÷¿¡ symfindÀÇ °á°ú ¿¹Á¦°¡ ÀÖ´Ù:

$ symfind sqlcex

SymFind - Find Symbol <sqlcex> in <**>.a, .o, .so
------------------------------------------------------
Command:         /u01/app/oracle/product/8.0.5/bin/symfind sqlcex
Local Directory: /u01/app/oracle/product/8.0.5
Output File:     (none)
Note:            I do not traverse symbolic links
                 Use '-v' option to show any symbolic links

Locating Archive and Object files ...
[11645] |    467572|      44|FUNC |GLOB |0    |8      |sqlcex
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ./lib/libclntsh.so
[35]    |         0|      44|FUNC |GLOB |0    |5      |sqlcex
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ./lib/libsql.a

Thread Support

¿À¶óŬ ¶óÀ̺귯¸®´Â À̹ø ¸±¸®ÀÌÁî¿¡¼­ ¾ÈÁ¤µÇ°í, ´ÙÁß ½º·¹µå ¾îÇø®ÄÉÀ̼Ç(multi-threaded applications)À» Áö¿øÇÏ´Â ½º·¹µå¸¦ Áö¿øÇÑ´Ù.

¿À¶óŬ ¶óÀ̺귯¸®¿Í Static ±×¸®°í Dynamic Linking

ÇÁ¸®ÄÄÆÄÀÏ·¯¿Í OCI ¾îÇø®ÄÉÀ̼ǵéÀº Á¤Àû, µ¿Àû ¶óÀ̺귯¸®µé°ú link ÇÒ ¼ö ÀÖ´Ù. Á¤Àû linkÀÇ °æ¿ì¿¡´Â, ¸ðµç ¾îÇø®ÄÉÀ̼ÇÀÇ ¶óÀ̺귯¸®µé°ú objectµéÀÌ ÇϳªÀÇ ½ÇÇà ÇÁ·Î±×·¥¾È¿¡ ÇÔ²² link µÇ¾î ÀÖ´Ù. °á°úÀûÀ¸·Î, ¾îÇø®ÄÉÀÌ¼Ç ½ÇÇàÆÄÀϵéÀº »ó´çÈ÷ Å©°Ô µÉ ¼ö ÀÖ´Ù.

µ¿Àû linkÀÇ °æ¿ì¿¡´Â, ½ÇÇà ÇÁ·Î±×·¥ ¾È¿¡ ¼öÇà Äڵ尡 ºÎºÐÀûÀ¸·Î´Â ½ÇÇà ÇÁ·Î±×·¥¾È¿¡ Á¸ÀçÇÑ´Ù. ±×¸®°í ½ÇÇà½Ã(run-time)¿¡ µ¿Àû ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ¼­ link µÇ´Â ¶óÀ̺귯¸®µéµµ Á¸ÀçÇÑ´Ù. ½ÇÇà½Ã¿¡ link µÇ´Â ¶óÀ̺귯¸®µéÀº µ¿Àû ¶Ç´Â °øÀ¯ ¶óÀ̺귯¸®µéÀÌ´Ù. ¿©±â¿¡ µ¿Àû link ÀÇ Áß¿äÇÑ µÎ°¡Áö ÀÌÀÍÀ» ¼³¸íÇÑ´Ù:

  1. 1. ´õ ÀÛÀº µð½ºÅ© ¿ä±¸:
    ´Ù¸¥ ¾îÇø®ÄÉÀÌ¼Çµé ¶Ç´Â °°Àº ¾îÇø®ÄÉÀ̼ÇÀÇ ´Ù¸¥ ¿äûÀÌ °°Àº °øÀ¯ ¶Ç´Â µ¿Àû ¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °á°úÀûÀ¸·Î µð½ºÅ© ³¡¿¡¼­ ³¡±îÁöÀÇ ¿ä±¸´Â ÁÙ¾îµç´Ù.
  2. 2. ´õ ÀÛÀº ¸ÞÀÎ ¸Þ¸ð¸® ¿ä±¸:
    °°Àº °øÀ¯ ¶Ç´Â µ¿Àû ¶óÀ̺귯¸® À̹ÌÁö(i.e., the in-memory copy)´Â ´Ù¸¥ ¾îÇø®ÄÉÀ̼ǵ鿡 ÀÇÇØ¼­ °øÀ¯µÉ ¼ö ÀÖ´Ù. À̰ÍÀº ¶óÀ̺귯¸®°¡ ¸ÞÀÎ ¸Þ¸ð¸® ¾È¿¡ ¿ÀÁ÷ ÇѹøÀº ·ÎµåµÇ¾î Áú Çʿ䰡 ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ±×¸®°í ´ÙÁß ¾îÇø®ÄÉÀÌ¼Ç °°Àº ¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °á°úÀûÀ¸·Î ¸ÞÀÎ ¸Þ¸ð¸®ÀÇ ¿ä±¸´Â ´õ ÁÙ¾îµç´Ù.

¿À¶óŬ °øÀ¯ ¶óÀ̺귯¸®(Oracle shared library)

¿À¶óŬ °øÀ¯ ¶óÀ̺귯¸®´Â $ORACLE_HOME/lib/libclntsh.so ¿¡ ÀÖ´Ù. ¸¸¾à ¿À¶óŬÀÌ ¾îÇø®ÄÉÀ̼ÇÀ» linkÇϱâ À§Çؼ­ »ç¿ëÇÏ´Â demo_product.mk makefileÀ» Á¦°øÇÑ´Ù¸é, ¿À¶óŬ °øÀ¯ ¶óÀ̺귯¸®´Â ±âº»ÀûÀ¸·Î »ç¿ëµÇ¾îÁø´Ù.

ÇÁ·Î¼¼½º°¡ ½ÃÀ۵ǾúÀ» ¶§ ½ÇÇà½Ã ·Î´õ(runtime loader)°¡ ¿À¶óŬ °øÀ¯ ¶óÀ̺귯¸®¸¦ ãÀ»¼ö ÀÖµµ°Ô Çϱâ À§Çؼ­ LD_LIBRARY_PATH ¿¡ ȯ°æº¯¼ö¸¦ ¼¼ÆÃÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. ¸¸¾à ½ÇÇàÆÄÀÏÀ» ½ÃÀÛÇßÀ» ¶§ ´ÙÀ½°ú °°Àº ¿¡·¯°¡ ³µ´Ù¸é, LD_LIBRARY_PATH°¡ ¿À¶óŬ °øÀ¯ ¶óÀ̺귯¸®°¡ Á¸ÀçÇÏ´Â µð·ºÅ丮¿¡ ¼¼ÆÃµÇ¾î ÀÖ¾î¾ß¸¸ ÇÑ´Ù.

% sample1
ld.so.1: sample1: fatal: libclntsh.so.1.0: can't open file: errno=2 
Killed

LD_LIBRARY_PATHÀº ´ÙÀ½°ú °°ÀÌ ¼¼ÆÃÇÑ´Ù:

% setenv LD_LIBRARY_PATH $ORACLE_HOME/lib

¿À¶óŬ °øÀ¯ ¶óÀ̺귯¸®´Â ÀνºÅçÇÏ´Â µ¿¾È¿¡ ÀÚµ¿À¸·Î ¸¸µé¾îÁø´Ù. ¸¸¾à ¿À¶óŬ °øÀ¯ ¶óÀ̺귯¸®¸¦ ´Ù½Ã ¸¸µé Çʿ䰡 ÀÖ´Ù¸é, SQL*Plus³ª Recovery Manager¿Í °°Àº ¸ðµç ¿À¶óŬ Ŭ¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ǵéÀ» Æ÷ÇÔÇÑ ¿À¶óŬ °øÀ¯ ¶óÀ̺귯¸®¸¦ »ç¿ëÇϰí ÀÖ´Â ¸ðµç Ŭ¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ǵéÀ» Á¾·áÇϰí, oracle·Î ·Î±×ÀÎ ÇÑ ÈÄ¿¡ ´ÙÀ½ ¸í·É¾î¸¦ ½ÇÇà½ÃŲ´Ù.

% cd $ORACLE_HOME/rdbms/lib
% make -f ins_rdbms.mk client_sharedlib

Signal Handlers »ç¿ëÇϱâ

ÀÌ ºÎºÐÀº ¿À¶óŬ8ÀÌ µÎ ÀÛ¾÷°£ÀÇ Åë½Å(two-task communication)¿¡ »ç¿ëÇÏ´Â ½Ã±×³ÎÀ» ¼³¸íÇÑ´Ù. ±×¸®°í signal handler¸¦ ¾î¶»°Ô ¼Â¾÷ Çϴ°¡¸¦ ¼³¸íÇÑ´Ù.

Signals

SignalÀº ´ç½ÅÀÌ µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÒ ¶§ ±×¸®°í Á¢¼Ó »óŰ¡ ¾Æ´Ñ »óÅ¿¡¼­ ´Ù½Ã ÀνºÅçÇÒ ¶§ »ç¿ëÀÚ ÇÁ·Î¼¼½º¿¡ ÀνºÅçµÇ¾î ÀÖ´Ù.

¿À¶óŬ8Àº µÎ ÀÛ¾÷°£ÀÇ Åë½Å(two-task communication)À» À§Çؼ­ ´ÙÀ½ signalµéÀ» »ç¿ëÇÑ´Ù:

Table 5-3 µÎ ÀÛ¾÷°£ÀÇ Åë½ÅÀ» À§ÇÑ signalµé

SIGCONT

 

»ç¿ëÀÚ ÇÁ·Î¼¼½º·ÎºÎÅÍ oracle ÇÁ·Î¼¼½º¿¡°Ô ´ë¿ª¿Ü signal(out-of-band breaks)À» º¸³»±â À§ÇÑ pipe tow-task driver¿¡ ÀÇÇØ¼­ »ç¿ëµÈ´Ù.

 

SIGINT

 

¿äûÇÏ´Â »ç¿ëÀÚ ÀÎÅÍ·´Æ®¸¦ º¸È£Çϱâ À§ÇÑ ¸ðµç two-task driver¿¡ ÀÇÇØ¼­ »ç¿ëµÈ´Ù. SIGINT´Â oracle¿¡ ÀÇÇØ ÀâÈ÷Áö ¾Ê´Â´Ù; ±×°ÍÀº »ç¿ëÀÚ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ¼­ ÀâÈù´Ù.

 

SIGPIPE

 

Åë½Å ä³Î ÆÄÀÏÀÇ ³¡(end-of-file)À» º¸È£Çϱâ À§ÇÑ pipe driver¿¡ ÀÇÇØ¼­ »ç¿ëµÈ´Ù. pipe¿¡ ¾²¿©Áú ¶§, ÇÁ·Î¼¼½º°¡ Á¸ÀçÇÏ´Â °ÍÀ» ÀÐÁö ¸øÇÑ´Ù¸é, SIGPIPE signalÀº ¾²°íÀÖ´Â(Writing) ÇÁ·Î¼¼½º¸¦ º¸³½´Ù. SIGPIPE ´Â oracle ÇÁ·Î¼¼¼­¿Í »ç¿ëÀÚ ÇÁ·Î¼¼½º ¸ðµÎ¿¡¼­ ÀâÈù´Ù.

 

SIGCLD

 

pipe driver¿¡ ÀÇÇØ¼­ »ç¿ëµÈ´Ù. SIGCLD´Â SIGPIPE¿Í À¯»çÇÏ´Ù. ÇÏÁö¸¸ ¿ÀÁ÷ »ç¿ëÀÚ ÇÁ·Î¼¼½º¸¸ Àû¿ëµÇ°í, oracleÇÁ·Î¼¼½º¿¡´Â Àû¿ëµÇÁö ¾Ê´Â´Ù. oracle ÇÁ·Î¼¼½º°¡ Á×¾úÀ» ¶§, LINUX Ä¿³ÎÀº »ç¿ëÀÚ ÇÁ·Î¼¼½º¿¡°Ô SIGCLD¸¦ º¸³½´Ù(¸¸¾à ¼­¹ö ÇÁ·Î¼¼½º°¡ Á×¾ú´Ù¸é wait()Àº signal handler¸¦ º¸´Âµ¥¿¡ »ç¿ëµÈ´Ù). SIGCLD´Â oracle ¿¡¼­´Â ÀâÈ÷Áö ¾Ê°í, »ç¿ëÀÚ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ¼­ ÀâÈù´Ù.

 

SIGTERM

 

»ç¿ëÀÚÃøÀ¸·ÎºÎÅÍ oracle ÇÁ·Î¼¼½º¿¡°Ô ÀÎÅÍ·´Æ®¸¦ ½ÅÈ£Çϱâ À§ÇÑ pipe driver¿¡ ÀÇÇØ¼­ »ç¿ëµÈ´Ù. À̰ÍÀº »ç¿ëÀÚ°¡ ÀÎÅÍ·´Æ®Å° [Ctrl]+[c]¸¦ ´­·¶À» ¶§ ÀϾ´Ù. SIGTERM Àº »ç¿ëÀÚ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ¼­ ÀâÈ÷Áö ¾Ê´Â´Ù; ±×°ÍÀº oracle¿¡ ÀÇÇØ¼­ ÀâÈù´Ù.

 

SIGIO

 

³×Æ®¿öÅ· À̺¥Æ®µéÀÌ µé¾î¿À´Â °ÍÀ» °¡¸®Å°´Â Oracle Net8 protocol adapters¿¡ ÀÇÇØ¼­ »ç¿ëµÈ´Ù.

 

SIGURG

 

»ç¿ëÀÚ ÇÁ·Î¼¼½º·ÎºÎÅÍ oracle ÇÁ·Î¼¼½º¿¡°Ô ´ë¿ª¿Ü signal(out-of-band breaks)À» º¸³»±â À§ÇÑ Oracle Net8 TCP/IP driver¿¡ ÀÇÇØ¼­ »ç¿ëµÈ´Ù.

 

¸®½ºÆ®µÈ signalµéÀº Pro*C ¶Ç´Â ´Ù¸¥ Àü󸮱⠾îÇø®ÄÉÀ̼ǵ鿡 ¿µÇâÀ» ¹ÌÄ£´Ù. ´ç½ÅÀº ¿À¶óŬ ÇÁ·Î¼¼½º¿¡ Á¢¼ÓµÇ¾î ÀÖÀ» ¶§ SIGCLD (¶Ç´Â SIGCHLD) ±×¸®°í SIGPIPE¸¦ À§ÇÑ ÇϳªÀÇ signal handler¸¦ ÀνºÅçÇÒ ¼ö ÀÖ´Ù. osnsui() ·çƾÀÌ ¼Â¾÷À» À§Çؼ­ È£ÃâµÇ´Â µ¿¾È SIGINT¸¦ À§ÇÑ multiple signal handlerµéÀ» ¸¸µé ¼ö ÀÖ´Ù. ´ç½ÅÀº ¿øÇÒ ¶§ ´Ù¸¥ signalµéÀ» À§Çؼ­ ¸¹Àº signalµéÀ» ÀνºÅçÇÒ ¼ö ÀÖ´Ù. ¸¸¾à the oracle process Á¢¼ÓµÇ¾î ÀÖÁö ¾Ê´Ù¸é, multiple signal handler¸¦ ¸¸µé ¼ö ÀÖ´Ù.

¿¹Á¦ Signal ·çƾ

´ÙÀ½ ¿¹Á¦´Â signal ·çƾ°ú catching ·çƾÀ» ¾î¶»°Ô ¼Â¾÷ÇÒ ¼ö ÀÖ´ÂÁö º¸¿©ÁØ´Ù. SIGINT¿¡¼­´Â signal-catching·çƾÀ» µî·ÏÇÏ°í »èÁ¦Çϱâ À§Çؼ­ osnsui() ¿Í osncui()¸¦ »ç¿ëÇÑ´Ù.

/* »ç¿ëÀÚ Ãø ÀÎÅÍ·´Æ® ¼¼ÆÃ */
word osnsui( /*_ word *handlp, void (*astp), char * ctx, _*/)
/*
** osnsui: ¿î¿µÃ¼Á¦ ÀÇÁ¸ »ç¿ëÀÚÃø ÀÎÅÍ·´Æ® ³×Æ®¿öÅ© ¼¼ÆÃ
**
** handling procedure astp ÀÎÅÍ·´Æ®¸¦ ´õÇÑ´Ù.
**
** »ç¿ëÀÚ ÀÎÅÍ·´Æ®(^C¿Í °°Àº)°¡ ¹ß»ýÇÒ¶§¸¶´Ù ctx ÀÎÀÚ¿Í ÇÔ²² astp¸¦ È£ÃâÇÑ´Ù.
**
** ÀÌ handler¸¦ À§ÇÑ *handlp ÇÚµéÀ» ³Ö´Â´Ù. ±×·¡¼­ osncui ¿Í ÇÔ²² Áö¿î´Ù.
**
** ¸¹Àº handlerµéÀÌ º¸ÀÏ °ÍÀÌ´Ù.
** »ç¿ëµÇ°í ÀÖ´Â osncui ´Â °¢°¢ Áö¿öÁ®¾ß ÇÑ´Ù. 
** ¸¸¾à¿¡ ¿¡·¯°¡ ¹ß»ýÇÏ¸é ¿¡·¯Äڵ带 ¸®ÅÏÇÑ´Ù.
*/

/* »ç¿ëÀÚ Ãø ÀÎÅÍ·´Æ® »èÁ¦ */
word osncui( /*_ word handle _*/ );
/*
** osncui : ¿î¿µÃ¼Á¦ ÀÇÁ¸ »ç¿ëÀÚÃø ÀÎÅÍ·´Æ® »èÁ¦ 
**
** ¿­°ÅµÈ handler¸¦ Áö¿î´Ù. ÀÎÀÚ´Â osnsui·ÎºÎÅÍ ¾ò¾îÁø handleÀÌ´Ù.
**
** aksdir ¿¡·¯°¡ ¹ß»ýÇÏ¸é ¿¡·¯Äڵ带 ¸®ÅÏÇÑ´Ù.
*/

´ÙÀ½Àº ¾îÇø®ÄÉÀÌ¼Ç ¾È¿¡¼­ osnsui()¿Í osncui()¸¦ »ç¿ëÇϱâ À§ÇÑ ÅÛÇø´ÀÌ´Ù:

/*
** ÀÚ½ÅÀÇ »ç¿ëÀÚ ÀÎÅÍ·´Æ® handler.
*/
void sig_handler()
{
...
}

main(argc, argv)
int arc;
char **argv;
   {

   int handle, err;
   ...
   
   /* ÀÚ½ÅÀÇ »ç¿ëÀÚ ÀÎÅÍ·´Æ® Çڵ鷯¸¦ ¼Â¾÷ÇÑ´Ù */
   if (err = osnsui(&handle, sig_handler, (char *) 0))
      {
      /* ¸¸¾à ¸®ÅϰªÀÌ 0ÀÌ ¾Æ´Ï¸é, ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. 
      ¾î¶² °ÍÀº ¿©±â¿¡ »ç¿ëÇÑ´Ù */
      ...
      }
      ...
      /* ÀÚ½ÅÀÇ ÀÎÅÍ·´Æ® Çڵ鷯¸¦ Áö¿î´Ù */
      if (err = osncui(handle))
      {
      /* ¸¸¾à ¸®ÅϰªÀÌ 0ÀÌ ¾Æ´Ï¸é, 
      ¾î¶² °ÍÀº ¿©±â¿¡ »ç¿ëÇÑ´Ù. */
      ...
      }
      ...
}

XA Functionality

XA ¾îÇø®ÄÉÀÌ¼Ç TP-¸ð´ÏÅ͸¦ ¸¸µé ¶§ ¿À¶óŬ Ŭ¶óÀÌ¾ðÆ® °øÀ¯ ¶óÀ̺귯¸®¿¡ ¾Õ¼­ link line¿¡ À§Ä¡Çϰí ÀÖ´Â TP-¸ð´ÏÅÍ ¶óÀ̺귯¸®µé(ax_reg¿Í ax_unreg symbolÀ» Á¤ÀÇÇÑ)À» È®Á¤ÇÑ´Ù. ÀÌ linkÀÇ Á¦¾àÁ¶°ÇÀº ¿ÀÁ÷ XAÀÇ µ¿Àû µî·Ï(Oracle XA switch xaoswd)¿¡ »ç¿ëµÉ ¶§ ¿ä±¸µÇ¾îÁø´Ù.

Oracle8 ¼­¹ö´Â Oracle7 7.1.6 XAÀÇ È£Ãâ(»Ó¸¸¾Æ´Ï¶ó 7.3 XA È£Ãâ)À» Á¦°øÇÏÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î 7.1.6 XA È£ÃâÀ» »ç¿ëÇÏ´Â TP-¸ð´ÏÅÍ XA ¾îÇø®ÄÉÀ̼ÇÀº Oracle8 XA ¶óÀ̺귯¸®¿Í ÇÔ²² ´Ù½Ã link µÇ¾î¾ß¸¸ ÇÑ´Ù. Oracle8 XA È£ÃâÀº $ORACLE_HOME/lib/libclntsh.so °øÀ¯ ¶óÀ̺귯¸®¿Í $ORACLE_HOME/lib/libclient.a Á¤Àû ¶óÀ̺귯¸® ¸ðµÎ¿¡¼­ Á¤ÀǵǾîÁø´Ù.




Prev

Next
Oracle
Copyright © 1998 Oracle Corporation.

All Rights Reserved.

Library

Product

Contents

Index