¸±¸®½º Á¤º¸


º¯°æ ½ÃÀÛº¯°æ ½ÃÀÛ20.5 »ç¿ë ½Ã³ª¸®¿À

MQSeries ÇÔ¼ö¸¦ ´Ù¾çÇÑ ½Ã³ª¸®¿À·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¼½¼Ç¿¡¼­´Â ±âº» ¸Þ½ÃÁö, ÀÀ¿ëÇÁ·Î±×·¥ ¿¬°á¼º ¹× µ¥ÀÌÅÍ Ã¥À» Æ÷ÇÔÇÑ ÀϹÝÀûÀÎ ½Ã³ª¸®¿À¸¦ ¸î °¡Áö °ËÅäÇÕ´Ï´Ù.

20.5.1 ±âº» ¸Þ½ÃÁö

¸ðµç µ¥ÀÌÅͺ£À̽º ÀÀ¿ëÇÁ·Î±×·¥ÀÌ °°Àº DB2 ¼­¹ö¿¡ ¿¬°áµÇ¾î ÀÖÀ» ¶§ MQSeries DB2 ÇÔ¼ö¿ÍÀÇ °¡Àå ±âº»ÀûÀÎ ÇüÅÂÀÇ ¸Þ½ÃÁö ±³È¯ÀÌ ÀÌ·ç¾îÁý´Ï´Ù. Ŭ¶óÀ̾ðÆ®´Â µ¥ÀÌÅͺ£À̽º ¼­¹ö¿¡ Àְųª ³×Æ®¿öÅ© ȯ°æ¿¡ ºÐ»êµÇ¾î ÀÖ½À´Ï´Ù.

°£´ÜÇÑ ½Ã³ª¸®¿À¿¡¼­ Ŭ¶óÀ̾ðÆ® A´Â MQSEND ÇÔ¼ö¸¦ È£ÃâÇÏ¿© »ç¿ëÀÚ Á¤ÀÇ ¹®ÀÚ¿­À» ±âº» ¼­ºñ½º À§Ä¡·Î º¸³À´Ï´Ù. ±×·¯¸é MQSeries ÇÔ¼ö°¡ µ¥ÀÌÅͺ£À̽º ¼­¹öÀÇ DB2¿¡¼­ ½ÇÇàµË´Ï´Ù. Àá½Ã ÈÄ¿¡ Ŭ¶óÀ̾ðÆ® B°¡ MQRECEIVE ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ±âº» ¼­ºñ½º¿¡¼­ Á¤ÀÇÇÑ ´ë±âÇà·Ä Çìµå¿¡¼­ ¸Þ½ÃÁö¸¦ Á¦°ÅÇÏ¿© À̸¦ Ŭ¶óÀ̾ðÆ®¿¡°Ô ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ÀÛ¾÷À» ¼öÇàÇÒ MQSeries ÇÔ¼ö°¡ ´Ù½Ã DB2¿¡ ÀÇÇØ ½ÇÇàµË´Ï´Ù.

µ¥ÀÌÅͺ£À̽º Ŭ¶óÀ̾ðÆ®´Â °£´ÜÇÑ ¸Þ½ÃÁö¸¦ ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°Àº °æ¿ì¿¡ ¸Þ½Ã¡À» »ç¿ëÇÕ´Ï´Ù.

´ÙÀ½ ½Ã³ª¸®¿À´Â ¿ø°Ý ¸Þ½ÃÁö¸¦ ÅëÇÕÇϱâ À§ÇØ À§¿¡¼­ ¼³¸íÇÑ ´Ü¼øÇÑ ½Ã³ª¸®¿À¸¦ È®ÀåÇÑ °ÍÀÔ´Ï´Ù. Áï, ¸Ó½Å A¿Í ¸Ó½Å B »çÀÌ¿¡¼­ ¸Þ½ÃÁö°¡ Àü¼ÛµË´Ï´Ù. °¢ ´Ü°è´Â ´ÙÀ½°ú °°½À´Ï´Ù.

  1. DB2 Ŭ¶óÀ̾ðÆ®°¡ ¸Ó½Å BÀÇ ¿ø°Ý ´ë±âÇà·ÄÀ» ³ªÅ¸³»±â À§ÇØ Á¤ÀÇµÈ ´ë»ó ¼­ºñ½º¸¦ ÁöÁ¤ÇÏ´Â MQSEND È£ÃâÀ» ½ÇÇàÇÕ´Ï´Ù.
  2. MQSeries DB2 ÇÔ¼ö´Â ¸Þ½ÃÁö¸¦ º¸³»´Â ½ÇÁ¦ MQSeries ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù. ¸Ó½Å AÀÇ MQSeries ¼­¹ö´Â ¸Þ½ÃÁö¸¦ ¹Þ¾ÆµéÀÌ°í ÀÌ ¸Þ½ÃÁö°¡ ¸Ó½Å AÀÇ ÇöÀç MQSeries ±¸¼º ¹× ¼­ºñ½º ÁöÁ¡ Á¤ÀÇ·Î Á¤ÀÇÇÑ ¸ñÀûÁö·Î ¹è´ÞµÇµµ·Ï º¸ÀåÇÕ´Ï´Ù. ¼­¹ö´Â ¸Ó½Å BÀÇ ´ë±âÇà·ÄÀÓÀ» ÆľÇÇÑ ÈÄ ¸Þ½ÃÁö¸¦ ¸Ó½Å BÀÇ MQSeries ¼­¹ö·Î ¹è´ÞÇÏ·Á°í ½ÃµµÇÕ´Ï´Ù. ÀÌ ¶§ ÇÊ¿äÇϸé Åõ¸íÇÏ°Ô Àç½ÃµµÇÕ´Ï´Ù.
  3. ¸Ó½Å BÀÇ MQSeries¼­¹ö´Â ¸Ó½Å AÀÇ ¼­¹ö¿¡¼­ º¸³½ ¸Þ½ÃÁö¸¦ ¹Þ°í ÀÌ ¸Þ½ÃÁö¸¦ ¸Ó½Å BÀÇ ¸ñÀûÁö ´ë±âÇà·Ä¿¡ °®´Ù ³õ½À´Ï´Ù.
  4. ¸Ó½Å BÀÇ MQSeries Ŭ¶óÀ̾ðÆ®´Â ´ë±âÇà·ÄÀÇ Çìµå¿¡¼­ ¸Þ½ÃÁö¸¦ ¿äûÇÕ´Ï´Ù.

20.5.2 ¸Þ½ÃÁö Àü¼Û

MQSEND¸¦ »ç¿ëÇÏ¿© DB2 »ç¿ëÀÚ³ª °³¹ßÀÚ´Â Àü¼ÛÇÒ µ¥ÀÌÅÍ, Àü¼ÛÇÒ À§Ä¡ ¹× Àü¼Û ½Ã±â¸¦ ¼±ÅÃÇÕ´Ï´Ù. ¾÷°è¿¡¼­´Â À̸¦ "º¸³»°í Àؾî¹ö¸®±â" Áï, º¸³½ »ç¶÷Àº ´ÜÁö ¸Þ½ÃÁö¸¦ º¸³»±â¸¸ ÇÏ°í ¸Þ½ÃÁö°¡ ¸ñÀûÁö¿¡ µµ´ÞÇß´ÂÁö È®ÀÎÇÏ´Â °ÍÀº MQSeries ¹è´Þ ÇÁ·ÎÅäÄÝÀ̶ó°í ÇÕ´Ï´Ù. ´ÙÀ½Àº À̸¦ º¸¿©ÁÖ´Â ¿¹ÀÔ´Ï´Ù.

¿¹ 4: »ç¿ëÀÚ Á¤ÀÇ ¹®ÀÚ¿­À» ¼­ºñ½º ÁöÁ¡ myPlace·Î highPriority ±ÔÁ¤°ú ÇÔ²² º¸³À´Ï´Ù.

VALUES DB2MQ.MQSEND('myplace','highPriority','test')

¿©±â¼­, highPriority ±ÔÁ¤Àº MQSeries ¿ì¼±¼øÀ§¸¦ °¡Àå ³ôÀº ·¹º§·Î ¼³Á¤ÇÏ°í Áö¼Ó¼º°ú °°Àº ¼­ºñ½º Áúµµ µ¿ÀÏÇÏ°Ô Á¶Á¤ÇÏ´Â AMI Repository¿¡ Á¤ÀÇµÈ ±ÔÁ¤À» ÂüÁ¶ÇÕ´Ï´Ù.

¸Þ½ÃÁö ³»¿ëÀº SQL ¹× »ç¿ëÀÚ ÁöÁ¤ µ¥ÀÌÅÍÀÇ Àû¹ýÇÑ °áÇÕÀ¸·Î ±¸¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. ¿©±â¿¡´Â ÁßøµÈ ÇÔ¼ö, ¿¬»êÀÚ ¹× ij½ºÆ®°¡ Æ÷ÇԵ˴ϴÙ. ¿¹¸¦ µé¾î, VARCHAR Ä÷³ LASTNAME, FIRSTNAME ¹× DEPARTMENTÀÌ ÀÖ´Â EMPLOYEE Å×ÀÌºí¿¡¼­ DEPARTMENT 5LGAÀÇ °¢ Á÷¿ø¿¡ ´ëÇØ ÀÌ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â ¸Þ½ÃÁö¸¦ º¸³»·Á¸é ´ÙÀ½À» ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.

¿¹ 5:

SELECT DB2MQ.MQSEND(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT)
   FROM EMPLOYEE
   WHERE DEPARTMENT = '5LGA'

ÀÌ Å×ÀÌºí¿¡ Á¤¼ö AGE Ä÷³µµ ÀÖÀ¸¸é ´ÙÀ½ÀÌ Æ÷Çյ˴ϴÙ.

¿¹ 6:

SELECT DB2MQ.MQSEND
      (LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT|| ' ' || char(AGE))
   FROM EMPLOYEE
   WHERE DEPARTMENT = '5LGA'

EMPLOYEE Å×ÀÌºí¿¡ ACE Ä÷³ÀÌ ¾Æ´Ñ CLOB À¯ÇüÀÇ RESUME Ä÷³ÀÌ ÀÖÀ» °æ¿ì, DEPARTMENT 5LGAÀÇ °¢ °í¿ëÀο¡ ´ëÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â ¸Þ½ÃÁö¸¦ ´ÙÀ½°ú °°ÀÌ ³»º¸³À´Ï´Ù.

¿¹ 7:

SELECT DB2MQ.MQSEND
      (clob(LASTNAME) || ' ' || clob(FIRSTNAME) || ' ' || clob(DEPARTMENT) || ' ' || RESUME))
   FROM EMPLOYEE
   WHERE DEPARTMENT = '5LGA'

¿¹ 8:

¸¶Áö¸·À¸·Î ´ÙÀ½ ¿¹´Â À¯È¿ÇÑ SQL Ç¥Çö½ÄÀ» »ç¿ëÇÏ¿© ¸Þ½ÃÁö ³»¿ëÀ» ÃßÃâÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù. µÎ ¹ø° Å×À̺í DEPT¿¡´Â VARCHAR Ä÷³ DEPT_NO ¹× DEPT_NAMEÀÌ ÀÖ°í Á÷¿øÀÇ LASTNAME ¹× DEPT_NAMEÀ» Æ÷ÇÔÇÏ´Â ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖ½À´Ï´Ù.

¿¹ 8:

SELECT DB2MQ.MQSEND(e.LASTNAME || ' ' || d.DEPTNAME) 
   FROM EMPLOYEE e, DEPT d
   WHERE e.DEPARTMENT = d.DEPTNAME

20.5.3 ¸Þ½ÃÁö °Ë»ö

MQSeries DB2 ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¸Þ½ÃÁö¸¦ ¹Þ°Å³ª ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù. Àд °Í°ú ¹Þ´Â °ÍÀÇ Â÷ÀÌ´Â Àд °æ¿ì ´ë±âÇà·ÄÀÇ Çìµå¿¡¼­ ¸Þ½ÃÁö¸¦ Á¦°ÅÇÏÁö ¾Ê°í ¸Þ½ÃÁö¸¦ ¸®ÅÏÇÏÁö¸¸ ¹Þ´Â °æ¿ì¿¡´Â ¸Þ½ÃÁö°¡ ´ë±âÇà·Ä¿¡¼­ Á¦°ÅµË´Ï´Ù. ¹Þ´Â ÀÛ¾÷À» »ç¿ëÇÏ¿© °Ë»öµÈ ¸Þ½ÃÁö´Â ÇÑ ¹ø¸¸ °Ë»öÇÒ ¼ö ÀÖÁö¸¸ Àд ÀÛ¾÷À» »ç¿ëÇÏ¿© °Ë»öµÈ ¸Þ½ÃÁö´Â ¿©·¯ ¹ø °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº À̸¦ º¸¿©ÁÖ´Â ¿¹ÀÔ´Ï´Ù.

¿¹ 8:

VALUES DB2MQ.MQREAD()

ÀÌ ¿¹¿¡¼­´Â ±âº» ¼­ºñ½º Áú ±ÔÁ¤À» »ç¿ëÇÏ´Â ±âº» ¼­ºñ½º°¡ Á¤ÀÇÇÑ ´ë±âÇà·ÄÀÇ Çìµå¿¡¼­ ¸Þ½ÃÁö¸¦ Æ÷ÇÔÇÏ´Â VARCHAR ¹®ÀÚ¿­À» ¸®ÅÏÇÕ´Ï´Ù. ÀÐÀ» ¸Þ½ÃÁö°¡ ¾øÀ» °æ¿ì, ³Î(NULL) °ªÀÌ ¸®Åϵȴٴ Á¡¿¡ ÁÖÀÇÇϽʽÿÀ. ÀÌ ÀÛ¾÷À¸·Î ´ë±âÇà·ÄÀº º¯°æµÇÁö ¾Ê½À´Ï´Ù.

¿¹ 9:

VALUES DB2MQ.MQRECEIVE('Employee_Changes')

À§ÀÇ ¿¹´Â ±âº» ±ÔÁ¤À» »ç¿ëÇÏ´Â Employee_Changes ¼­ºñ½º°¡ Á¤ÀÇÇÑ ´ë±âÇà·ÄÀÇ Çìµå¿¡¼­ ¸Þ½ÃÁö¸¦ Á¦°ÅÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.

DB2ÀÇ °­·ÂÇÑ ±â´É Áß Çϳª´Â »ç¿ëÀÚ Á¤ÀÇ(¶Ç´Â DB2 Á¦°ø) ÇÔ¼ö¿¡¼­ Å×À̺íÀ» »ý¼ºÇÏ´Â ±â´ÉÀÔ´Ï´Ù. ÀÌ Å×À̺í ÇÔ¼ö ±â´ÉÀ» ÀÌ¿ëÇÏ¿© ´ë±âÇà·ÄÀÇ ³»¿ëÀ» DB2 Å×À̺í·Î ±¸Ã¼È­ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº À̸¦ º¸¿©ÁÖ´Â °£´ÜÇÑ ¿¹ÀÔ´Ï´Ù.

¿¹ 10:

SELECT t.* FROM table ( DB2MQ.MQREADALL()) t 

ÀÌ Á¶È¸´Â ÀÌ ¸Þ½ÃÁö¿¡ ´ëÇÑ ¸ÞŸµ¥ÀÌÅÍ ¹× ±âº» ¼­ºñ½º¿¡¼­ Á¤ÀÇÇÑ ´ë±âÇà·ÄÀÇ ¸ðµç ¸Þ½ÃÁö·Î ±¸¼ºµÈ Å×À̺íÀ» ¸®ÅÏÇÕ´Ï´Ù. ¸®ÅÏµÈ Å×ÀÌºí ±¸Á¶ÀÇ Àüü Á¤ÀÇ´Â ºÎ·Ï¿¡ Á¤ÀǵǾî ÀÖÁö¸¸ ù Ä÷³Àº ¸Þ½ÃÁö ³»¿ëÀ» ¹Ý¿µÇÏ¸ç ³ª¸ÓÁö Ä÷³¿¡´Â ¸ÞŸµ¥ÀÌÅÍ°¡ Æ÷ÇԵ˴ϴÙ. ¸Þ½ÃÁö¸¸ ¸®ÅÏÇÏ·Á¸é À§ÀÇ ¿¹¸¦ ´ÙÀ½°ú °°ÀÌ ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù.

¿¹ 11:

SELECT t.MSG FROM table (DB2MQ.MQREADALL()) t

Å×À̺í ÇÔ¼ö°¡ ¸®ÅÏÇÑ Å×À̺íÀº µ¥ÀÌÅͺ£À̽º¿¡¼­ Á÷Á¢ °Ë»öÇÑ Å×À̺í°ú ´Ù¸£Áö ¾Ê½À´Ï´Ù. µû¶ó¼­ ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î ÀÌ Å×À̺íÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Å×ÀÌºí ³»¿ëÀ» ´Ù¸¥ Å×À̺í°ú Á¶ÀÎÇϰųª ´ë±âÇà·ÄÀÇ ¸Þ½ÃÁö ¼ö¸¦ ¼¿ ¼ö ÀÖ½À´Ï´Ù.

¿¹ 12:

SELECT t.MSG, e.LASTNAME 
   FROM table (DB2MQ.MQREADALL() ) t, EMPLOYEE e 
      WHERE t.MSG = e.LASTNAME

¿¹ 13:

SELECT COUNT(*) FROM table (DB2MQ.MQREADALL()) t

Å×À̺í ÇÔ¼ö¿¡ ´ëÇÑ ºä¸¦ ÀÛ¼ºÇÏ¿© Å×ÀÌºí ¼Ò½º°¡ ´ë±âÇà·ÄÀ̶ó´Â °ÍÀ» ¼û±æ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ ¿¹¿¡¼­´Â NEW_EMPLOYEES ¼­ºñ½º°¡ ÂüÁ¶ÇÏ´Â ´ë±âÇà·Ä¿¡ ´ëÇØ NEW_EMP¶ó´Â ºä¸¦ ÀÛ¼ºÇÕ´Ï´Ù.

¿¹ 14:

CREATE VIEW NEW_EMP (msg) AS
   SELECT t.msg FROM table (DB2MQ.MQREADALL()) t

ÀÌ °æ¿ì ºä´Â Àüü ¸Þ½ÃÁö¸¦ Æ÷ÇÔÇÏ´Â ´ÜÀÏ Ä÷³°ú ÇÔ²² Á¤Àǵ˴ϴÙ. °íÁ¤µÈ ±æÀÌÀÇ µÎ Çʵ尡 Æ÷ÇÔµÈ °æ¿ì¿Í °°ÀÌ ¸Þ½ÃÁö°¡ ´Ü¼øÇÏ°Ô ±¸¼ºµÇ¸é ¸Þ½ÃÁö¸¦ µÎ °³ÀÇ Ä÷³À¸·Î ºÐ¼®Çϱâ À§ÇØ DB2 ³»Àå ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÆíÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ƯÁ¤ ´ë±âÇà·Ä·Î Àü¼ÛµÇ´Â ¸Þ½ÃÁö¿¡´Â Ç×»ó 18¹®ÀÚÀÇ ¼º°ú ±× µÚ¿¡ 18¹®ÀÚÀÇ À̸§ÀÌ ³ª¿Â´Ù´Â °ÍÀ» ¾Ë°í ÀÖ´Â °æ¿ì, ´ÙÀ½°ú °°ÀÌ º°µµÀÇ Ä÷³À¸·Î °¢ Çʵ带 Æ÷ÇÔÇÏ°í ÀÖ´Â ºä¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹ 15:

CREATE VIEW NEW_EMP2 AS
   SELECT left(t.msg,18) AS LNAME, right(t.msg,18) AS FNAME
   FROM table(DB2MQ.MQREADALL()) t

DB2 Stored Procedure BuilderÀÇ »õ·Î¿î ±â´ÉÀÎ MQSeries Áö¿ø ¸¶¹ý»ç¸¦ »ç¿ëÇÏ¿© ºÐ¸®µÈ ¸Þ½ÃÁö ±¸Á¶¸¦ Ä÷³À¸·Î ¸ÊÇÎÇÏ´Â »õ·Î¿î DB2 Å×À̺í ÇÔ¼ö ¹× ºä¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ´Â Çϳª ÀÌ»óÀÇ ¸Þ½ÃÁö ³»¿ëÀ» µ¥ÀÌÅͺ£À̽º·Î ÀúÀåÇÒ °æ¿ì¿¡ ÁÁ½À´Ï´Ù. ¸Þ½ÃÁö ³»¿ëÀ» Á¶ÀÛÇÏ°í ÀúÀåÇÏ´Â SQLÀÇ Àüü ¼º´ÉÀ» »ç¿ëÇÏ¿© ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº °¡Àå °£´ÜÇÑ ¿¹ÀÔ´Ï´Ù.

¿¹ 16:

INSERT INTO MESSAGES 
   SELECT t.msg FROM table (DB2MQ.MQRECEIVEALL()) t

ÇϳªÀÇ Ä÷³ VARCHAR(2000)°¡ ÀÖ´Â MESSAGES Å×ÀÌºí¿¡¼­ À§ÀÇ ¸í·É¹®À» »ç¿ëÇÏ¸é ±âº» ¼­ºñ½º ´ë±âÇà·ÄÀÇ ¸Þ½ÃÁö¸¦ Å×ÀÌºí¿¡ »ðÀÔÇÕ´Ï´Ù. ÀÌ ¹æ¹ýÀ» ¼öÁ¤ÇÏ¿© ´Ù¾çÇÑ °æ¿ì¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

20.5.4 ÀÀ¿ëÇÁ·Î±×·¥°£ ¿¬°á¼º

ÀÀ¿ëÇÁ·Î±×·¥ ÅëÇÕÀº ¸¹Àº ¼Ö·ç¼Ç¿¡¼­ ÀϹÝÀûÀÎ ¿ä¼ÒÀÔ´Ï´Ù. ±¸ÀÔÇÑ ÀÀ¿ëÇÁ·Î±×·¥À» ±âÁ¸ ±¸Á¶¿¡ ÅëÇÕÇϰųª »õ·Î °³¹ßÇÑ ÀÀ¿ëÇÁ·Î±×·¥¸¸ ±âÁ¸ ȯ°æ¿¡ ÅëÇÕÇÒ °æ¿ì, ¸ðµÎ À̱âÁ¾ ¼­ºê½Ã½ºÅÛ ÄÝ·º¼ÇÀÌ ÀüüÀûÀ¸·Î ÀÛ¾÷ÇÒ ¼ö ÀÖµµ·Ï ÇÔ²² ÅëÇÕÇØ¾ß ÇÏ´Â ¹®Á¦¿¡ Á÷¸éÇÏ°Ô µË´Ï´Ù. MQSeries´Â ÀϹÝÀûÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥À» ÅëÇÕÇÏ´Â ÇʼöÀûÀÎ µµ±¸ÀÔ´Ï´Ù. ´ëºÎºÐÀÇ Çϵå¿þ¾î, ¼ÒÇÁÆ®¿þ¾î ¹× ¾ð¾î ȯ°æ¿¡¼­ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â MQSeries´Â À̱âÁ¾ ÀÀ¿ëÇÁ·Î±×·¥ ÄÝ·º¼ÇÀ» ¼­·Î ¿¬°áÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù.

ÀÌ ¼½¼Ç¿¡¼­´Â ¸î °³ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ÅëÇÕ ½Ã³ª¸®¿À¿Í DB2¿Í ÇÔ²² »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. ÁÖÁ¦°¡ ±¤¹üÀ§ÇϹǷΠÀÀ¿ëÇÁ·Î±×·¥ ÅëÇÕ¿¡ ´ëÇÑ Æ÷°ýÀûÀÎ Á¢±ÙÀº ÀÌ ¹üÀ§¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù. µû¶ó¼­ ¿äû/ÀÀ´ä Åë½Å°ú MQSeries Integrator ¹× Publish/SubscribeÀÇ µÎ °¡Áö °£´ÜÇÑ Ç׸ñ¿¡ ÃÊÁ¡À» ¸ÂÃä´Ï´Ù.

20.5.4.1 ¿äû/ÀÀ´ä Åë½Å

¿äû/ÀÀ´ä(R/R) Åë½Å ¹æ¹ýÀº ÇϳªÀÇ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¼­ºñ½º¸¦ ¿äûÇÏ´Â ÀϹÝÀûÀÎ ¹æ¹ýÀÔ´Ï´Ù. À̸¦ ¼öÇàÇÏ´Â ÇÑ ¹æ¹ýÀº ¸®Äù½ºÅÍ°¡ ¼­ºñ½º Á¦°øÀÚ¿¡°Ô ¼öÇàÇÒ ÀÛ¾÷À» ¿äûÇÏ´Â ¸Þ½ÃÁö¸¦ º¸³»´Â °ÍÀÔ´Ï´Ù. ÀÛ¾÷ÀÌ ¿Ï·áµÇ¸é Á¦°øÀÚ´Â °á°ú(¶Ç´Â ¿Ï·á È®Àθ¸)¸¦ ´Ù½Ã ¸®Äù½ºÅÍ¿¡°Ô º¸³¾ ¼ö ÀÖ½À´Ï´Ù. À§¿¡¼­ ¼³¸íÇÑ ±âº» ¸Þ½ÃÁö Àü¼Û ¹æ¹ý ÀÌ¿Ü¿¡´Â º¸³½ »ç¶÷ÀÇ ¿äûÀ» ¼­ºñ½º Á¦°øÀÚÀÇ ÀÀ´ä°ú ¿¬°áÇÏ´Â ¹æ¹ýÀÌ ¾ø½À´Ï´Ù. °è¼Ó ÁøÇàÇϱâ Àü¿¡ ¸®Äù½ºÅÍ°¡ ÀÀ´äÀ» ±â´Ù¸®Áö ¾Ê´Â °æ¿ì, °¢ ÀÀ´äÀ» ¸®Äù½ºÅÍ¿Í ¿¬°áÇÏ´Â ¸ÞÄ¿´ÏÁòÀÌ »ç¿ëµÇ¾î¾ß ÇÕ´Ï´Ù. °³¹ßÀÚ°¡ ÀÌ·¯ÇÑ ¸ÞÄ¿´ÏÁòÀ» ¸¸µé ÇÊ¿ä ¾øÀÌ MQSeries´Â ±³È¯½Ã ¸Þ½ÃÁö »ó°üÀ» Çã¿ëÇÏ´Â »ó°ü ID¸¦ Á¦°øÇÕ´Ï´Ù.

¿©·¯ °¡Áö ¹æ¹ýÀ¸·Î ÀÌ ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ °¡Àå °£´ÜÇÑ ¹æ¹ýÀº ¸®Äù½ºÅÍ°¡ ´ÙÀ½°ú °°Àº ¹æ¹ý µîÀ» »ç¿ëÇÏ¿© ¾Ë·ÁÁø »ó°ü ID·Î ¸Þ½ÃÁö¸¦ Ç¥½ÃÇÏ´Â °ÍÀÔ´Ï´Ù.

¿¹ 17:

DB2MQ.MQSEND ('myRequester','myPolicy','SendStatus:cust1','Req1')

ÀÌ ¸í·É¹®Àº ¿äûÀÇ »ó°ü ID¸¦ ³ªÅ¸³»±â À§ÇØ À§ÀÇ MQSEND ¸í·É¹®¿¡ ¸¶Áö¸· ¸Å°³º¯¼ö Req1À» Ãß°¡ÇÕ´Ï´Ù.

ÀÌ Æ¯Á¤ ¿äû¿¡ ´ëÇÑ ÀÀ´äÀ» ¹ÞÀ¸·Á¸é ´ÙÀ½°ú °°ÀÌ ÇØ´çµÇ´Â MQRECEIVE¹®À» »ç¿ëÇÏ¿© ÀÌ »ó°ü ID¿Í ÀÏÄ¡Çϴ ǥ½ÃµÈ ¼­ºñ½º°¡ Á¤ÀÇÇÑ Ã¹ ¸Þ½ÃÁö¸¦ ¼±ÅÃÀûÀ¸·Î °Ë»öÇÕ´Ï´Ù.

¿¹ 18:

DB2MQ.MQRECEIVE('myReceiver','myPolicy','Req1')

¿äûÀ» ¼­ºñ½ºÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥ÀÌ »ç¿ë ÁßÀ̰ųª ¸®Äù½ºÅÍ°¡ ÀÀ´äÀ» ¹Þ±â Àü¿¡ À§ÀÇ MQRECEIVE¸¦ ½ÇÇàÇϸé ÀÌ »ó°ü ½Äº°ÀÚ¿Í ÀÏÄ¡ÇÏ´Â ¸Þ½ÃÁö¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù.

¼­ºñ½º ¿äû ¹× »ó°ü ½Äº°ÀÚ¸¦ ¸ðµÎ ¹ÞÀ¸·Á¸é ´ÙÀ½°ú °°Àº ¸í·É¹®À» »ç¿ëÇÕ´Ï´Ù.

¿¹ 19:

SELECT msg, correlid FROM table 
(DB2MQ.MQRECEIVEALL('aServiceProvider','myPolicy',1)) t

ÀÌ ¸í·É¹®Àº ¼­ºñ½º aServiceProvider¿¡¼­ ù ¹ø° ¿äûÀÇ »ó°ü ID ¹× ¸Þ½ÃÁö¸¦ ¸®ÅÏÇÕ´Ï´Ù.

ÀÏ´Ü ¼­ºñ½º°¡ ¼öÇàµÇ¸é aRequester°¡ ¼³¸íÇÏ´Â ´ë±âÇà·Ä·Î ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ±× µ¿¾È ¼­ºñ½º ¸®Äù½ºÅÍ´Â ´Ù¸¥ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î ¼³Á¤µÈ ½Ã°£ ³»¿¡ Ãʱ⠼­ºñ½º ¿äû¿¡ ´ëÇÑ ÀÀ´äÀ» ¹Þ´Â´Ù´Â º¸ÀåÀÌ ¾ø½À´Ï´Ù. ÀÌ¿Í °°Àº ÀÀ¿ëÇÁ·Î±×·¥ ·¹º§ ½Ã°£Á¾·á´Â °³¹ßÀÚ°¡ °ü¸®ÇØ¾ß ÇÕ´Ï´Ù. ¸®Äù½ºÅÍ´Â ÀÀ´äÀ» ¹ß°ßÇϱâ À§ÇØ Æú¸µÇØ¾ß ÇÕ´Ï´Ù.

ÀÌ·¯ÇÑ ½Ã°£°ú ¹«°üÇÑ ºñµ¿±â ó¸®ÀÇ ÀåÁ¡Àº ¸®Äù½ºÅÍ ¹× ¼­ºñ½º Á¦°øÀÚ°¡ ¼­·Î ¿ÏÀüÈ÷ µ¶¸³ÀûÀ¸·Î ½ÇÇàÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. ¶ÇÇÑ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ °£ÇæÀûÀ¸·Î¸¸ ¿¬°áµÇ´Â ȯ°æ ¹× ¿©·¯ ¿äûÀ̳ª ÀÀ´äÀÌ Ã³¸®µÇ±â Àü¿¡ ´©ÀûµÇ´Â ¹èÄ¡ À§ÁÖÀÇ È¯°æ¿¡¼­ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ´©ÀûÀº µ¥ÀÌÅÍ ¿þ¾îÇϿ콺³ª Á¶ÀÛ µ¥ÀÌÅÍ ÀúÀå¼Ò¸¦ Á¤±âÀûÀ¸·Î °»½ÅÇÏ´Â µ¥ÀÌÅÍ ¿þ¾îÇϿ콺 ȯ°æ¿¡¼­ ÁÖ·Î »ç¿ëµË´Ï´Ù.

20.5.4.2 Publish/Subscribe

´Ü¼ø µ¥ÀÌÅÍ publication

ÀÀ¿ëÇÁ·Î±×·¥ ÅëÇÕÀÇ ¶Ç ´Ù¸¥ ÀϹÝÀûÀÎ ½Ã³ª¸®¿À´Â ÇÑ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥¿¡°Ô À̺¥Æ®¸¦ ÅëÁöÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ´Â ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¸ð´ÏÅÍÇÏ´Â ´ë±âÇà·Ä·Î ¸Þ½ÃÁö¸¦ º¸³¿À¸·Î½á ½±°Ô ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸Þ½ÃÁö ³»¿ëÀº »ç¿ëÀÚ Á¤ÀÇ ¹®ÀÚ¿­À̳ª µ¥ÀÌÅͺ£À̽º Ä÷³À¸·Î ±¸¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. ´Ü¼øÇÑ ¸Þ½ÃÁöÀÎ °æ¿ì, ÁÖ·Î MQSEND ÇÔ¼ö¸¦ »ç¿ëÇؼ­ º¸³»¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ½ÃÁö¸¦ ¿©·¯ ¼ö½ÅÀÚ¿¡°Ô µ¿½Ã¿¡ º¸³»¾ß ÇÒ °æ¿ì, MQSeries AMIÀÇ ºÐ»ê ¸ñ·Ï ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ºÐ»ê ¸ñ·ÏÀº AMI °ü¸® µµ±¸·Î Á¤Àǵ˴ϴÙ. ºÐ»ê ¸ñ·ÏÀº °³º° ¼­ºñ½º ¸ñ·ÏÀ¸·Î ±¸¼ºµË´Ï´Ù. ºÐ»ê ¸ñ·ÏÀ¸·Î º¸³½ ¸Þ½ÃÁö´Â ¸ñ·Ï¿¡¼­ Á¤ÀÇµÈ ¸ðµç ¼­ºñ½º·Î Àü´ÞµË´Ï´Ù. ÀÌ´Â ÀϺΠ¼­ºñ½º°¡ Ç×»ó ¸ðµç ¸Þ½ÃÁö¿Í °ü·ÃÀÌ ÀÖ´Ù´Â °ÍÀ» ¾Ë°í ÀÖÀ» °æ¿ì ƯÈ÷ À¯¿ëÇÕ´Ï´Ù. ´ÙÀ½ ¿¹´Â ºÐ»ê ¸ñ·Ï interestedParties¿¡ ¸Þ½ÃÁö¸¦ º¸³»´Â °æ¿ìÀÔ´Ï´Ù.

¿¹ 20:

DB2MQ.MQSEND('interestedParties','information of general interest');

ƯÁ¤ ¼­ºñ½º¸¦ ¹Þ¾Æ¾ß ÇÏ´Â ¸Þ½ÃÁö¸¦ ´õ Àß Á¦¾îÇØ¾ß ÇÒ °æ¿ì, Publish/Subscribe ±â´ÉÀÌ ÇÊ¿äÇÕ´Ï´Ù. Publish/Subscribe ½Ã½ºÅÛÀº ÀϹÝÀûÀ¸·Î ¿©·¯ subscribers¿¡°Ô ¸Þ½ÃÁö¸¦ ¹Þ±â À§ÇØ ¿©·¯ subscribers°¡ µî·ÏÇÒ ¼ö ÀÖ´Â È®Àå °¡´ÉÇÑ º¸¾È ȯ°æÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ ±â´ÉÀ» Áö¿øÇϱâ À§ÇØ MQSeries Integrator ¶Ç´Â MQSeries Publish/Subscribe ±â´É°ú ÇÔ²² MQPublish ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

MQPublish¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ´Â ¼±ÅÃÀûÀ¸·Î ¸Þ½ÃÁö¿Í ¿¬°üµÈ ÁÖÁ¦¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÁÖÁ¦¸¦ »ç¿ëÇÏ¿© subscriber´Â ¹ÞÀ» ¸Þ½ÃÁö¸¦ ´õ¿í ¸íÈ®ÇÏ°Ô ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½°ú °°Àº ´Ü°è¸¦ ¼öÇàÇÕ´Ï´Ù.

  1. MQSeries °ü¸®ÀÚ°¡ MQSeries Integrator publish/subscribe ±â´ÉÀ» ±¸¼ºÇÕ´Ï´Ù.
  2. °ü½ÉÀÖ´Â ÀÀ¿ëÇÁ·Î±×·¥Àº MQSI ±¸¼º¿¡¼­ Á¤ÀÇÇÑ subscription ÁöÁ¡¿¡ subscribeÇÏ¿© ¼±ÅÃÀûÀ¸·Î °ü½ÉÀÖ´Â ÁÖÁ¦¸¦ ÁöÁ¤ÇÕ´Ï´Ù. °¢ subscriber´Â °ü·Ã ÁÖÁ¦¸¦ ¼±ÅÃÇÏ°í MQSeries Integrator V2ÀÇ ³»¿ë¿¡ ±âÃÊÇÑ subscriptionÀ» ÀÌ¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¼­ºñ½º À̸§À¸·Î Ç¥½ÃµÈ ´ë±âÇà·ÄÀÌ subscriber¸¦ Á¤ÀÇÇÔ¿¡ ÁÖÀÇÇϽʽÿÀ.
  3. DB2 ÀÀ¿ëÇÁ·Î±×·¥Àº ¼­ºñ½º ÁöÁ¡ Weather¿¡ ¸Þ½ÃÁö¸¦ ¹ßÇàÇÕ´Ï´Ù. ¸Þ½ÃÁö´Â weather°¡ Austin ÁÖÁ¦ÀÇ °æ¿ì SleetÀÓÀ» ³ªÅ¸³»¹Ç·Î °ü½ÉÀÖ´Â subscribers¿¡°Ô AustinÀÇ weather°¡ SleetÀÓÀ» ÅëÁöÇÕ´Ï´Ù.
  4. ½ÇÁ¦·Î ¸Þ½ÃÁö¸¦ ¹ßÇàÇÏ´Â ¸ÞÄ¿´ÏÁòÀº DB2°¡ Á¦°øÇÏ´Â MQSeries ÇÔ¼ö¿¡ ÀÇÇØ Ã³¸®µË´Ï´Ù. ¸Þ½ÃÁö´Â Weather¶ó´Â À̸§ÀÇ ¼­ºñ½º¸¦ »ç¿ëÇÏ¿© MQSeries Integrator·Î º¸³»Áý´Ï´Ù.
  5. MQSI´Â Weather ¼­ºñ½º¿¡¼­ ¸Þ½ÃÁö¸¦ ¹Þ¾Æ MQSI ±¸¼º¿¡¼­ Á¤ÀÇÇÑ Ã³¸®¸¦ ¼öÇàÇϸç ÃæÁ·½ÃÅ°´Â subscriptions¸¦ ÆǺ°ÇÕ´Ï´Ù. ±×·± ´ÙÀ½ MQSI´Â ¸Þ½ÃÁö¸¦ ±âÁØ¿¡ ¸Â´Â subscriber ´ë±âÇà·Ä¿¡ Àü´ÞÇÕ´Ï´Ù.
  6. Weather ¼­ºñ½º¿¡ subscribeÇÏ°í Austin¿¡ °ü½ÉÀÌ ÀÖ´Ù°í µî·ÏÇÑ ÀÀ¿ëÇÁ·Î±×·¥Àº ¼ö½ÅÇÏ´Â ¼­ºñ½º¿¡¼­ Sleet ¸Þ½ÃÁö¸¦ ¹Þ½À´Ï´Ù.

¸ðµç ±âº»°ª ¹× ³Î(NULL) ÁÖÁ¦¸¦ »ç¿ëÇÏ¿© ÀÌ µ¥ÀÌÅ͸¦ ¹ßÇàÇÏ·Á¸é ´ÙÀ½ ¸í·É¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

¿¹ 21:

SELECT DB2MQ.MQPUBLISH(LASTNAME || ' ' || FIRSTNAME || ' ' ||
    DEPARTMENT|| ' ' ||char(AGE)) 
   FROM EMPLOYEE
   WHERE DEPARTMENT = '5LGA'

¸ðµç ¸Å°³º¯¼ö¸¦ ¿Ïº®ÇÏ°Ô ÁöÁ¤ÇÏ°í LASTNAME¸¸ Æ÷ÇÔÇϵµ·Ï ¸Þ½ÃÁö¸¦ ´Ü¼øÈ­ÇÏ¸é ¸í·É¹®Àº ´ÙÀ½°ú °°½À´Ï´Ù.

¿¹ 22:

SELECT DB2MQ.MQPUBLISH('HR_INFO_PUB', 'SPECIAL_POLICY', LASTNAME, 
   'ALL_EMP:5LGA', 'MANAGER') 
   FROM EMPLOYEE
   WHERE DEPARTMENT = '5LGA'

ÀÌ ¸í·É¹®Àº SPECIAL_POLICY ¼­ºñ½º¸¦ »ç¿ëÇÏ¿© ¸Þ½ÃÁö¸¦ HR_INFO_PUB publication ¼­ºñ½º¿¡ ¹ßÇàÇÕ´Ï´Ù. ¸Þ½ÃÁö´Â º¸³½ »ç¶÷ÀÌ MANAGER ÁÖÁ¦ÀÓÀ» ³ªÅ¸³À´Ï´Ù. ÁÖÁ¦ ¹®ÀÚ¿­Àº ':'¸¦ »ç¿ëÇÏ¿© ¿¬°áÇÑ ¿©·¯ ÁÖÁ¦¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖÀ½À» º¸¿©ÁÝ´Ï´Ù. ÀÌ ¿¹¿¡¼­ µÎ °³ÀÇ ÁÖÁ¦¸¦ »ç¿ëÇÔÀ¸·Î½á subscribers´Â ALL_EMP ¶Ç´Â ´ÜÁö 5LGA¿¡¸¸ µî·ÏÇÏ¿© ÀÌ ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.

¹ßÇàµÈ ¸Þ½ÃÁö¸¦ ¹ÞÀ¸·Á¸é ¸ÕÀú ÁÖ¾îÁø ÁÖÁ¦¸¦ Æ÷ÇÔÇÏ´Â ¸Þ½ÃÁö¿¡ ´ëÇÑ °ü·Ã »çÇ×À» µî·ÏÇÏ°í ¸Þ½ÃÁö¸¦ ¹Þ¾Æ¾ß ÇÏ´Â subscriber ¼­ºñ½º À̸§À» Ç¥½ÃÇØ¾ß ÇÕ´Ï´Ù. AMI subscriber ¼­ºñ½º´Â Áß°³ÀÎ ¼­ºñ½º ¹× ¹Þ´Â »ç¶÷ ¼­ºñ½º¸¦ Á¤ÀÇÇÕ´Ï´Ù. Áß°³ÀÎ ¼­ºñ½º´Â subscriber°¡ publish/subscribe Áß°³Àΰú Åë½ÅÇÏ´Â ¹æ¹ýÀÌ¸ç ¹Þ´Â »ç¶÷ ¼­ºñ½º´Â subscription ¿äû°ú ÀÏÄ¡ÇÏ´Â ¸Þ½ÃÁö¸¦ º¸³¾ À§Ä¡ÀÔ´Ï´Ù. ´ÙÀ½ ¸í·É¹®Àº ALL_EMP ÁÖÁ¦¿¡ ´ëÇÑ °ü·Ã »çÇ×À» µî·ÏÇÕ´Ï´Ù.

¿¹ 23:

DB2MQ.MQSUBSCRIBE('aSubscriber', 'ALL_EMP')

ÀÏ´Ü ÀÀ¿ëÇÁ·Î±×·¥ÀÌ subscribeÇϸé ALL_EM ÁÖÁ¦¿Í ÇÔ²² ¹ßÇàµÈ ¸Þ½ÃÁö°¡ subscriber ¼­ºñ½º¿¡ ÀÇÇØ Á¤ÀÇµÈ ¹Þ´Â »ç¶÷ ¼­ºñ½º·Î Àü´ÞµË´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥Àº µ¿½Ã¿¡ ¿©·¯ °³ÀÇ subscriptions¸¦ °¡Áú ¼ö ÀÖ½À´Ï´Ù. subscription¿¡ ¸Â´Â ¸Þ½ÃÁö¸¦ ¹Þ±â À§ÇØ Ç¥ÁØ ¸Þ½ÃÁö °Ë»ö ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î subscriber ¼­ºñ½º aSubscriber°¡ ¹Þ´Â »ç¶÷ ¼­ºñ½º¸¦ aSubscriberReceiver·Î Á¤ÀÇÇÏ¸é ´ÙÀ½ ¸í·É¹®Àº ù ¹ø° ¸Þ½ÃÁö¸¦ ¼Õ»ó½ÃÅ°Áö ¾ÊÀ¸¸é¼­ ÀнÀ´Ï´Ù.

¿¹ 24:

DB2MQ.MQREAD('aSubscriberReceiver')

¸Þ½ÃÁö ¹× ¸Þ½ÃÁö°¡ ¹ßÇàµÉ ÁÖÁ¦¸¦ ÆľÇÇϱâ À§ÇØ Å×À̺í ÇÔ¼ö Áß Çϳª¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ¸í·É¹®Àº aSubscriberReceiver¿¡¼­ óÀ½ ´Ù¼¸ °³ÀÇ ¸Þ½ÃÁö¸¦ ¹Þ¾Æ ¸Þ½ÃÁö ¹× ÁÖÁ¦¸¦ ¸ðµÎ Ç¥½ÃÇÕ´Ï´Ù.

¿¹ 25:

SELECT t.msg, t.topic
   FROM table (DB2MQ.MQRECEIVEALL('aSubscriberReceiver',5)) t

ÁÖÁ¦°¡ ALL_EMPÀÎ ¸ðµç ¸Þ½ÃÁö¸¦ Àбâ À§ÇØ SQLÀÇ ±â´ÉÀ» ÀÌ¿ëÇÏ¿© ´ÙÀ½À» ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹ 26:

SELECT t.msg FROM table (DB2MQ.MQREADALL('aSubscriberReceiver')) t 
   WHERE t.topic = 'ALL_EMP'
º¯°æ ½ÃÀÛº¯°æ ½ÃÀÛÁÖ:º¯°æ ³¡º¯°æ ³¡
º¯°æ ½ÃÀÛº¯°æ ½ÃÀÛMQRECEIVEALLÀÌ Á¦ÇÑÁ¶°Ç°ú ÇÔ²² »ç¿ëµÇ¸é ALL_EMP ÁÖÁ¦·Î ¹ßÇàµÈ ¸Þ½ÃÁö»Ó ¾Æ´Ï¶ó Àüü ´ë±âÇà·ÄÀÌ ¼ÒºñµÊ¿¡ ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. ÀÌ´Â Á¦ÇÑÁ¶°ÇÀÌ Àû¿ëµÇ±â Àü¿¡ Å×À̺í ÇÔ¼ö°¡ ¼öÇàµÇ±â ¶§¹®ÀÔ´Ï´Ù. º¯°æ ³¡º¯°æ ³¡

ƯÁ¤ ÁÖÁ¦¿¡ subscribeÇÏ´Â µ¥ ´õ ÀÌ»ó °ü·Ã »çÇ×ÀÌ ¾øÀ¸¸é ´ÙÀ½°ú °°Àº ¸í·É¹®À» »ç¿ëÇÏ¿© ¸í½ÃÀûÀ¸·Î unsubscribeÇØ¾ß ÇÕ´Ï´Ù.

¿¹ 27:

DB2MQ.MQUNSUBSCRIBE('aSubscriber', 'ALL_EMP')

ÀÏ´Ü ÀÌ ¸í·É¹®ÀÌ ½ÇÇàµÇ¸é publish/subscribe Áß°³ÀÎÀº ÀÌ subscription°ú ÀÏÄ¡ÇÏ´Â ¸Þ½ÃÁö¸¦ ´õ ÀÌ»ó ¹è´ÞÇÏÁö ¾Ê½À´Ï´Ù.

ÀÚµ¿ publication

µ¥ÀÌÅͺ£À̽º ¸Þ½ÃÁöÀÇ ¶Ç ´Ù¸¥ Áß¿äÇÑ ±â¹ýÀº ÀÚµ¿ publicationÀÔ´Ï´Ù. DB2ÀÇ Æ®¸®°Å ±â´ÉÀ» »ç¿ëÇÏ¿© Æ®¸®°Å È£ÃâÀÇ ÀϺηΠ¸Þ½ÃÁö¸¦ ÀÚµ¿À¸·Î ¹ßÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚµ¿ µ¥ÀÌÅÍ publicationÀ» À§ÇÑ ´Ù¸¥ ¹æ¹ýµéµµ ÀÖÁö¸¸ Æ®¸®°Å¿¡ ±â¹ÝÇÑ Á¢±Ù ¹æ¹ýÀ» »ç¿ëÇÏ¸é °ü¸®ÀÚ³ª °³¹ßÀÚ°¡ ¸Þ½ÃÁö ³»¿ëÀ» ´õ ÀÚÀ¯·Ó°Ô ±¸¼ºÇÒ ¼ö ÀÖÀ¸¸ç Æ®¸®°Å Á¶Ä¡¸¦ ´õ À¶Å뼺 ÀÖ°Ô Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. Æ®¸®°Å¸¦ »ç¿ëÇÒ °æ¿ì¿¡´Â ºóµµ ¹× ½ÇÇà ºñ¿ë¿¡ ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½Àº MQSeries DB2 ÇÔ¼ö¿Í ÇÔ²² Æ®¸®°Å¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ´Â ¿¹ÀÔ´Ï´Ù.

¾Æ·¡ ¿¹´Â »õ Á÷¿øÀÌ °í¿ëµÉ ¶§¸¶´Ù ½±°Ô ¸Þ½ÃÁö¸¦ ¹ßÇàÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù. NEW_EMP¿¡ ´ëÇÑ °ü½ÉÀ» µî·ÏÇÏ°í HR_INFO_PUB ¼­ºñ½º¿¡ subscribeÇÑ »ç¿ëÀÚ³ª ÀÀ¿ëÇÁ·Î±×·¥Àº °¢°¢ÀÇ »õ Á÷¿øÀÇ ³¯Â¥, À̸§ ¹× ºÎ¼­¸¦ Æ÷ÇÔÇÏ´Â ¸Þ½ÃÁö¸¦ ¹Þ°Ô µË´Ï´Ù.

¿¹ 28:

CREATE TRIGGER new_employee AFTER INSERT ON employee 
REFERENCING NEW AS n
FOR EACH ROW MODE DB2SQL
VALUES DB2MQ.MQPUBLISH('HR_INFO_PUB&',  'NEW_EMP', 
current date || ' ' || LASTNAME || ' ' || DEPARTMENT)
º¯°æ ³¡º¯°æ ³¡


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