IBM Books

Net.Data ÂüÁ¶¼­


ºÎ·Ï D. AIX¿ë Net.Data

Net.Data´Â DB2 WWW ¿¬°áÀ» ´ëüÇÕ´Ï´Ù. AIX¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Net.Data ¿¡ ½Ç·Á ÀÖ´Â README ÆÄÀÏ¿¡ µé¾î ÀÖ½À´Ï´Ù. README ÆÄÀÏ¿¡´Â ´ÙÀ½°ú °°Àº Á¤º¸°¡ ½Ç·Á ÀÖ½À´Ï´Ù.

AIX Ç÷§Æû¿¡ ¾ð¾î ȯ°æÀ» ÀÛ¼ºÇÒ °æ¿ì, AIX¿¡¼­´Â °øÀ¯ ¶óÀ̺귯¸®¸¦ ÀûÀçÇØ¾ß ÇϹǷΠ¸î°¡Áö Ưº°ÇÑ ´Ü°è¸¦ ¼öÇàÇØ¾ß ÇÕ´Ï´Ù. AIX¿¡¼­, ¾ð¾î ȯ°æ¿¡´Â Net.Data¿¡ ÀÇÇØ È£ÃâµÇ´Â ·çƾÀ» Á¦°øÇØ¾ß ÇϸçÀÌ´Â dtw_initialize() ¹× dtw_execute()¿Í °°Àº ¾ð¾î ȯ°æ ÀÎÅÍÆäÀ̽º ·çƾÀÇ ÁÖ¼Ò¸¦ ¸®ÅÏÇÕ´Ï´Ù.

Net.Data´Â dtw_fp ±¸Á¶¸¦ »ç¿ëÇÏ¿© AIX³»ÀÇ ¾ð¾î ȯ°æ¿¡ µé¾î ÀÖ´Â ¾ð¾î ȯ°æ ÀÎÅÍÆäÀ̽º ·çƾ¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ °Ë»öÇÏ¸ç ´ÙÀ½°ú °°Àº Çü½ÄÀ» °®½À´Ï´Ù.

typedef struct dtw_fp {
    int (* dtw_initialize_fp)();   /* dtw_initialize function pointer */
    int (* dtw_execute_fp)();      /* dtw_execute function pointer    */
    int (* dtw_getNextRow_fp)();   /* dtw_getNextRow function pointer */
    int (* dtw_cleanup_fp)();      /* dtw_cleanup function pointer    */
} dtw_fp_t;

ÀÌ ±¸Á¶´Â °øÀ¯ ¶óÀ̺귯¸® ÀûÀç½Ã Net.Data¿¡ ÀÇÇØ dtw_getFp() ·çƾ³»ÀÇ ¸Å°³º¯¼ö·Î¼­ ¾ð¾î ȯ°æ¿¡ Àü´ÞµË´Ï´Ù.

dtw_fp ±¸Á¶´Â ¸Å°³º¯¼ö·Î¼­¸¸ Àü´ÞµË´Ï´Ù. ÀÌ ±¸Á¶¿¡´Â °¢ Áö¿øµÇ´Â ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ Çʵ尡 µé¾î ÀÖÀ¸¸ç, À̰ÍÀº ÀÌ Çʵ带 ¼³Á¤Çϱâ À§ÇØ ¾ð¾î ȯ°æÀÌ ÇØ¾ß ÇÒ ÀÛ¾÷ÀÔ´Ï´Ù. ¾ð¾î ȯ°æÀÌ ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÒ °æ¿ì, ÀÌ´Â Çʵ带 ±× ÀÎÅÍÆäÀ̽ºÀÇ ÇÔ¼ö Æ÷ÀÎÅÍ·Î ¼³Á¤ÇÕ´Ï´Ù. ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏÁö ¾ÊÀ» °æ¿ì, ÀÌ´Â Çʵ带 ³Î(NULL)·Î ¼³Á¤ÇÕ´Ï´Ù. ÇÁ·Î±×·¥ ÅÛÇø®Æ®³»ÀÇ dtw_getFp() ·çƾ¿¡ ÀÌ ·çƾÀÇ ¿Ã¹Ù¸¥ ±¸Çö ¹æ¹ýÀÌ ³ª¿Í ÀÖ½À´Ï´Ù.

°øÀ¯ ¶óÀ̺귯¸®°¡ ÀûÀçµÉ ¶§ Net.Data°¡ ÀÌ ·çƾ¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ È®º¸ÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á¸é, dtw_getFp ·çƾÀº °øÀ¯ ¶óÀ̺귯¸®ÀÇ ¹ÝÃâ(export) ÆÄÀÏ¿¡ ÁöÁ¤µÈ ù¹øÂ° Ç׸ñÁ¡À̾î¾ß ÇÕ´Ï´Ù. ¸ðµç »ç¿ë°¡´ÉÇÑ ¾ð¾î ȯ°æ ÀÎÅÍÆäÀ̽º¸¦ Áö¿øÇÏ´Â ¶óÀ̺귯¸® È£Ãâ dtwsampshr.o¿¡ ´ëÇÑ »ùÇà ¹ÝÃâ (export) ÆÄÀÏÀº ´ÙÀ½°ú °°½À´Ï´Ù.

#!dtwsampshr.o
dtw_getFp
dtw_initialize
dtw_execute
dtw_getNextRow
dtw_cleanup

AIX ½Ã½ºÅÛ»ó¿¡¼­ REXX ¾ð¾î ȯ°æ¿¡ ´ëÇØ ¿©·¯ ¹øÀÇ È£ÃâÀÌ ÀÖÀ» °æ¿ì¿¡´Â RXQUEUE_OWNER_PID¸¦ 0À¸·Î ¼³Á¤ÇϽʽÿÀ. REXX ¾ð¾î ȯ°æ¿¡ ´ëÇØ ¿©·¯¹ø È£ÃâÀ» ÇÏ´Â ¸ÅÅ©·Î´Â ½Ã½ºÅÛ ÀÚ¿øÀ» ÇÒ´çÇÏ¿© ¿©·¯ ÇÁ·Î¼¼½º¸¦ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, À¥ ¼­¹ö°¡ ¸ÅÃʸ¶´Ù 2°³ÀÇ ¿äûÀ» ó¸®ÇÑ´Ù°í °¡Á¤ÇսôÙ. ÇѹøÀÇ È£Ãâ¿¡¼­ ROW ºí·Ï³»ÀÇ REXX ÇÔ¼ö¿¡ 20ÇàÀ» ¸®ÅÏÇÏ´Â ¸ÅÅ©·Î´Â¼­¹ö°¡ ¸ÅÃÊ 80°³(REXX ¿ä±¸¿¡ ´ëÇÑ Çà ´ç 20 * HTTP ¿ä±¸¿¡ ´ëÇÑ Çà ´ç 2) ÀÇ ÇÁ·Î¼¼½º¸¦ ó¸®Çϵµ·Ï Çϴµ¥, ÀÌ´Â ¼­¹ö°¡ ó¸®ÇÒ ¼ö ÀÖ´Â ´É·ÂÀ» ÃʰúÇÑ °ÍÀÔ´Ï´Ù.

RXQUEUE_OWNER_PID¸¦ 0À¸·Î ¼³Á¤Çϸé, ¸ÅÃÊ 2°³ ÀÌ»óÀÇ ÇÁ·Î¼¼½º°¡ ½ÃÀÛµÇÁö ¸øÇϵµ·Ï Çϴµ¥, ÀÌ´Â ¾Æ¹«¸® ÀÛÀº AIX ¹Ú½º¶óµµ ó¸®ÇÒ ¼ö ÀÖ´Â ¾çÀÔ´Ï´Ù. DTW_rSETENV¸¦ »ç¿ëÇÏ¿© °ªÀ» ¼³Á¤ÇϽʽÿÀ.

@DTW_rSETENV("RXQUEUE_OWNER_PID", "0")

ROW ºí·Ï³»¿¡¼­ REXX ¾ð¾î ȯ°æÀ» È£ÃâÇÏ´Â À§ÀÇ ¿¹Á¦¿Í´Â ´Ù¸¥ ¹æ¹ýÀ¸·Î REXX ÇÔ¼ö¿¡ ÆäÄ¡µÈ Å×À̺í Àüü¸¦ Àü´ÞÇÏ´Â ¹æ¹ýÀÌ ÀÖÀ¸¸ç, ÀÌ ¹æ¹ý¿¡¼­´Â ÇѹøÀÇ È£Ãâ·Î ¾ð¾î ȯ°æ¿¡ ´ëÇÑ Ã³¸®°¡ ¹ß»ýÇÕ´Ï´Ù.


[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]