MQSeries ÇÔ¼ö¸¦ ´Ù¾çÇÑ ½Ã³ª¸®¿À·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¼½¼Ç¿¡¼´Â ±âº» ¸Þ½ÃÁö, ÀÀ¿ëÇÁ·Î±×·¥ ¿¬°á¼º ¹× µ¥ÀÌÅÍ Ã¥À» Æ÷ÇÔÇÑ ÀϹÝÀûÀÎ ½Ã³ª¸®¿À¸¦ ¸î °¡Áö °ËÅäÇÕ´Ï´Ù.
¸ðµç µ¥ÀÌÅͺ£À̽º ÀÀ¿ëÇÁ·Î±×·¥ÀÌ °°Àº DB2 ¼¹ö¿¡ ¿¬°áµÇ¾î ÀÖÀ» ¶§ MQSeries DB2 ÇÔ¼ö¿ÍÀÇ °¡Àå ±âº»ÀûÀÎ ÇüÅÂÀÇ ¸Þ½ÃÁö ±³È¯ÀÌ ÀÌ·ç¾îÁý´Ï´Ù. Ŭ¶óÀ̾ðÆ®´Â µ¥ÀÌÅͺ£À̽º ¼¹ö¿¡ Àְųª ³×Æ®¿öÅ© ȯ°æ¿¡ ºÐ»êµÇ¾î ÀÖ½À´Ï´Ù.
°£´ÜÇÑ ½Ã³ª¸®¿À¿¡¼ Ŭ¶óÀ̾ðÆ® A´Â MQSEND ÇÔ¼ö¸¦ È£ÃâÇÏ¿© »ç¿ëÀÚ Á¤ÀÇ ¹®ÀÚ¿À» ±âº» ¼ºñ½º À§Ä¡·Î º¸³À´Ï´Ù. ±×·¯¸é MQSeries ÇÔ¼ö°¡ µ¥ÀÌÅͺ£À̽º ¼¹öÀÇ DB2¿¡¼ ½ÇÇàµË´Ï´Ù. Àá½Ã ÈÄ¿¡ Ŭ¶óÀ̾ðÆ® B°¡ MQRECEIVE ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ±âº» ¼ºñ½º¿¡¼ Á¤ÀÇÇÑ ´ë±âÇà·Ä Çìµå¿¡¼ ¸Þ½ÃÁö¸¦ Á¦°ÅÇÏ¿© À̸¦ Ŭ¶óÀ̾ðÆ®¿¡°Ô ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ÀÛ¾÷À» ¼öÇàÇÒ MQSeries ÇÔ¼ö°¡ ´Ù½Ã DB2¿¡ ÀÇÇØ ½ÇÇàµË´Ï´Ù.
µ¥ÀÌÅͺ£À̽º Ŭ¶óÀ̾ðÆ®´Â °£´ÜÇÑ ¸Þ½ÃÁö¸¦ ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°Àº °æ¿ì¿¡ ¸Þ½Ã¡À» »ç¿ëÇÕ´Ï´Ù.
´ÙÀ½ ½Ã³ª¸®¿À´Â ¿ø°Ý ¸Þ½ÃÁö¸¦ ÅëÇÕÇϱâ À§ÇØ À§¿¡¼ ¼³¸íÇÑ ´Ü¼øÇÑ ½Ã³ª¸®¿À¸¦ È®ÀåÇÑ °ÍÀÔ´Ï´Ù. Áï, ¸Ó½Å A¿Í ¸Ó½Å B »çÀÌ¿¡¼ ¸Þ½ÃÁö°¡ Àü¼ÛµË´Ï´Ù. °¢ ´Ü°è´Â ´ÙÀ½°ú °°½À´Ï´Ù.
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
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 Å×ÀÌºí¿¡¼ À§ÀÇ ¸í·É¹®À» »ç¿ëÇÏ¸é ±âº» ¼ºñ½º ´ë±âÇà·ÄÀÇ ¸Þ½ÃÁö¸¦ Å×ÀÌºí¿¡ »ðÀÔÇÕ´Ï´Ù. ÀÌ ¹æ¹ýÀ» ¼öÁ¤ÇÏ¿© ´Ù¾çÇÑ °æ¿ì¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÀ¿ëÇÁ·Î±×·¥ ÅëÇÕÀº ¸¹Àº ¼Ö·ç¼Ç¿¡¼ ÀϹÝÀûÀÎ ¿ä¼ÒÀÔ´Ï´Ù. ±¸ÀÔÇÑ ÀÀ¿ëÇÁ·Î±×·¥À» ±âÁ¸ ±¸Á¶¿¡ ÅëÇÕÇϰųª »õ·Î °³¹ßÇÑ ÀÀ¿ëÇÁ·Î±×·¥¸¸ ±âÁ¸ ȯ°æ¿¡ ÅëÇÕÇÒ °æ¿ì, ¸ðµÎ À̱âÁ¾ ¼ºê½Ã½ºÅÛ ÄÝ·º¼ÇÀÌ ÀüüÀûÀ¸·Î ÀÛ¾÷ÇÒ ¼ö ÀÖµµ·Ï ÇÔ²² ÅëÇÕÇØ¾ß ÇÏ´Â ¹®Á¦¿¡ Á÷¸éÇÏ°Ô µË´Ï´Ù. MQSeries´Â ÀϹÝÀûÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥À» ÅëÇÕÇÏ´Â ÇʼöÀûÀÎ µµ±¸ÀÔ´Ï´Ù. ´ëºÎºÐÀÇ Çϵå¿þ¾î, ¼ÒÇÁÆ®¿þ¾î ¹× ¾ð¾î ȯ°æ¿¡¼ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â MQSeries´Â À̱âÁ¾ ÀÀ¿ëÇÁ·Î±×·¥ ÄÝ·º¼ÇÀ» ¼·Î ¿¬°áÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù.
ÀÌ ¼½¼Ç¿¡¼´Â ¸î °³ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ÅëÇÕ ½Ã³ª¸®¿À¿Í DB2¿Í ÇÔ²² »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. ÁÖÁ¦°¡ ±¤¹üÀ§ÇϹǷΠÀÀ¿ëÇÁ·Î±×·¥ ÅëÇÕ¿¡ ´ëÇÑ Æ÷°ýÀûÀÎ Á¢±ÙÀº ÀÌ ¹üÀ§¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù. µû¶ó¼ ¿äû/ÀÀ´ä Åë½Å°ú MQSeries Integrator ¹× Publish/SubscribeÀÇ µÎ °¡Áö °£´ÜÇÑ Ç׸ñ¿¡ ÃÊÁ¡À» ¸ÂÃä´Ï´Ù.
¿äû/ÀÀ´ä(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°¡ ¼³¸íÇÏ´Â ´ë±âÇà·Ä·Î ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ±× µ¿¾È ¼ºñ½º ¸®Äù½ºÅÍ´Â ´Ù¸¥ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î ¼³Á¤µÈ ½Ã°£ ³»¿¡ Ãʱ⠼ºñ½º ¿äû¿¡ ´ëÇÑ ÀÀ´äÀ» ¹Þ´Â´Ù´Â º¸ÀåÀÌ ¾ø½À´Ï´Ù. ÀÌ¿Í °°Àº ÀÀ¿ëÇÁ·Î±×·¥ ·¹º§ ½Ã°£Á¾·á´Â °³¹ßÀÚ°¡ °ü¸®ÇØ¾ß ÇÕ´Ï´Ù. ¸®Äù½ºÅÍ´Â ÀÀ´äÀ» ¹ß°ßÇϱâ À§ÇØ Æú¸µÇØ¾ß ÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ ½Ã°£°ú ¹«°üÇÑ ºñµ¿±â ó¸®ÀÇ ÀåÁ¡Àº ¸®Äù½ºÅÍ ¹× ¼ºñ½º Á¦°øÀÚ°¡ ¼·Î ¿ÏÀüÈ÷ µ¶¸³ÀûÀ¸·Î ½ÇÇàÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. ¶ÇÇÑ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ °£ÇæÀûÀ¸·Î¸¸ ¿¬°áµÇ´Â ȯ°æ ¹× ¿©·¯ ¿äûÀ̳ª ÀÀ´äÀÌ Ã³¸®µÇ±â Àü¿¡ ´©ÀûµÇ´Â ¹èÄ¡ À§ÁÖÀÇ È¯°æ¿¡¼ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ´©ÀûÀº µ¥ÀÌÅÍ ¿þ¾îÇϿ콺³ª Á¶ÀÛ µ¥ÀÌÅÍ ÀúÀå¼Ò¸¦ Á¤±âÀûÀ¸·Î °»½ÅÇÏ´Â µ¥ÀÌÅÍ ¿þ¾îÇϿ콺 ȯ°æ¿¡¼ ÁÖ·Î »ç¿ëµË´Ï´Ù.
ÀÀ¿ëÇÁ·Î±×·¥ ÅëÇÕÀÇ ¶Ç ´Ù¸¥ ÀϹÝÀûÀÎ ½Ã³ª¸®¿À´Â ÇÑ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥¿¡°Ô À̺¥Æ®¸¦ ÅëÁöÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ´Â ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¸ð´ÏÅÍÇÏ´Â ´ë±âÇà·Ä·Î ¸Þ½ÃÁö¸¦ º¸³¿À¸·Î½á ½±°Ô ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸Þ½ÃÁö ³»¿ëÀº »ç¿ëÀÚ Á¤ÀÇ ¹®ÀÚ¿À̳ª µ¥ÀÌÅͺ£À̽º Ä÷³À¸·Î ±¸¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. ´Ü¼øÇÑ ¸Þ½ÃÁöÀÎ °æ¿ì, ÁÖ·Î 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´Â ¹ÞÀ» ¸Þ½ÃÁö¸¦ ´õ¿í ¸íÈ®ÇÏ°Ô ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½°ú °°Àº ´Ü°è¸¦ ¼öÇàÇÕ´Ï´Ù.
¸ðµç ±âº»°ª ¹× ³Î(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'
ƯÁ¤ ÁÖÁ¦¿¡ subscribeÇÏ´Â µ¥ ´õ ÀÌ»ó °ü·Ã »çÇ×ÀÌ ¾øÀ¸¸é ´ÙÀ½°ú °°Àº ¸í·É¹®À» »ç¿ëÇÏ¿© ¸í½ÃÀûÀ¸·Î unsubscribeÇØ¾ß ÇÕ´Ï´Ù.
¿¹ 27:
DB2MQ.MQUNSUBSCRIBE('aSubscriber', 'ALL_EMP')
ÀÏ´Ü ÀÌ ¸í·É¹®ÀÌ ½ÇÇàµÇ¸é publish/subscribe Áß°³ÀÎÀº ÀÌ subscription°ú ÀÏÄ¡ÇÏ´Â ¸Þ½ÃÁö¸¦ ´õ ÀÌ»ó ¹è´ÞÇÏÁö ¾Ê½À´Ï´Ù.
µ¥ÀÌÅͺ£À̽º ¸Þ½ÃÁöÀÇ ¶Ç ´Ù¸¥ Áß¿äÇÑ ±â¹ýÀº ÀÚµ¿ 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)