Sun ONE Application Server 7, Update 1 °ü¸®ÀÚ ¼³¸í¼ |
À̸§ ÁöÁ¤ ¹× ÀÚ¿ø ±¸¼ºÀÌ Àå¿¡¼´Â Sun ONE Application Server¿¡¼ »ç¿ëÇÏ´Â J2EE ÀÚ¿ø¿¡ ´ëÇØ ¼³¸íÇÏ°í ÀÌ·¯ÇÑ ÀÚ¿øÀ» ¸¸µé°í °ü¸®Çϱâ À§ÇØ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼµµ ¼³¸íÇÕ´Ï´Ù.
ÀÌ Àå¿¡¼´Â ´ÙÀ½ ³»¿ëÀ» ¼³¸íÇÕ´Ï´Ù.
- J2EE À̸§ ÁöÁ¤ ¼ºñ½º ¹× ÀÚ¿ø Á¤º¸
- JNDI (Java Naming and Directory Interface) Á¤º¸
- Áö¼Ó¼º °ü¸®ÀÚ ÀÚ¿ø Á¤º¸
- JDBC ÀÚ¿ø Á¤º¸
- JavaMail ÀÚ¿ø Á¤º¸
J2EE À̸§ ÁöÁ¤ ¼ºñ½º ¹× ÀÚ¿ø Á¤º¸
EJB¸¦ Æ÷ÇÔÇÑ J2EE ÀÀ¿ë ÇÁ·Î±×·¥, À¥ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò ¹× ÀÀ¿ë ÇÁ·Î±×·¥ Ŭ¶óÀ̾ðÆ®´Â ÀÚ¿ø °ü¸®ÀÚ, µ¥ÀÌÅÍ ¼Ò½º(¿¹: SQL µ¥ÀÌÅÍ ¼Ò½º), ¿¬°á ÆÑÅ丮, ¿ìÆí ¼¼¼Ç, Java Message Service ´ë»ó °´Ã¼, URL ¿¬°á ÆÑÅ丮 °°Àº ´Ù¾çÇÑ ÀÚ¿ø¿¡ ¾×¼¼½ºÇÕ´Ï´Ù. J2EE Ç÷§ÆûÀº JNDI (Java Naming and Directory) À̸§ ÁöÁ¤ ¼ºñ½º¸¦ ÅëÇØ ÀÌ·¯ÇÑ ÀÚ¿øÀ» ÀÀ¿ë ÇÁ·Î±×·¥¿¡ Á¦°øÇÕ´Ï´Ù.
Sun ONE Application Server¸¦ »ç¿ëÇÏ¸é ´ÙÀ½ J2EE ÀÚ¿øÀ» ¸¸µé°í °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
JDBC µ¥ÀÌÅÍ ¼Ò½º
JDBC µ¥ÀÌÅÍ ¼Ò½º´Â Sun ONE Application Server¸¦ »ç¿ëÇÏ¿© ¸¸µé°í °ü¸®ÇÒ ¼ö ÀÖ´Â J2EE ÀÚ¿øÀÔ´Ï´Ù.
JDBC API´Â °ü°èÇü µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ°úÀÇ ¿¬°áÀ» À§ÇÑ APIÀÔ´Ï´Ù. JDBC API´Â µÎ ºÎºÐÀ¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
- µ¥ÀÌÅͺ£À̽º¿¡ ¾×¼¼½ºÇϱâ À§ÇØ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò¿¡¼ »ç¿ëÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¼öÁØ ÀÎÅÍÆäÀ̽º
- JDBC µå¶óÀ̹ö¸¦ J2EE Ç÷§Æû¿¡ ¿¬°áÇϱâ À§ÇÑ ¼ºñ½º °ø±ÞÀÚ ÀÎÅÍÆäÀ̽º
JDBC DataSource °´Ã¼´Â Java ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î µ¥ÀÌÅÍ ¼Ò½º¸¦ Ç¥ÇöÇÏ´Â °ÍÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î µ¥ÀÌÅÍ ¼Ò½º¶õ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ´Â ±â´ÉÀ» ÀǹÌÇÕ´Ï´Ù. µ¥ÀÌÅÍ ¼Ò½º´Â ´ë±â¾÷¿¡¼ »ç¿ëÇÏ´Â º¹ÀâÇÑ µ¥ÀÌÅͺ£À̽ºÃ³·³ º¹ÀâÇÒ ¼öµµ ÀÖ°í Çà°ú ¿·Î ±¸¼ºµÈ ÆÄÀÏó·³ °£´ÜÇÒ ¼öµµ ÀÖ½À´Ï´Ù. JDBC µ¥ÀÌÅÍ ¼Ò½º´Â Sun ONE Application Server¸¦ ÅëÇØ ¸¸µé°í °ü¸®ÇÒ ¼ö ÀÖ´Â J2EE ÀÚ¿øÀÔ´Ï´Ù.
JDBC µ¥ÀÌÅÍ ¼Ò½º¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "JDBC ÀÚ¿ø Á¤º¸"¸¦ ÂüÁ¶ÇϽʽÿÀ.
JavaMail ¼¼¼Ç
JMS ´ë»óÀº Sun ONE Application Server¸¦ ÅëÇØ ¸¸µé°í °ü¸®ÇÒ ¼ö ÀÖ´Â J2EE ÀÚ¿øÀÔ´Ï´Ù.
¸¹Àº ÀÎÅÍ³Ý ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ÀüÀÚ ¿ìÆí ¾Ë¸²À» º¸³¾ ¼ö ÀÖ´Â ±â´ÉÀ» ÇÊ¿ä·Î ÇϹǷΠJ2EE Ç÷§ÆûÀº JavaMail API¿Í ÇÔ²² JavaMail ¼ºñ½º °ø±ÞÀÚ¸¦ Æ÷ÇÔÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò°¡ ÀÎÅÍ³Ý ¿ìÆíÀ» º¸³¾ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. JavaMail API´Â µÎ ºÎºÐÀ¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
- ¿ìÆíÀ» º¸³»±â À§ÇØ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò¿¡¼ »ç¿ëÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¼öÁØ ÀÎÅÍÆäÀ̽º
- J2EE SPI ¼öÁØ¿¡¼ »ç¿ëÇÏ´Â ¼ºñ½º °ø±ÞÀÚ ÀÎÅÍÆäÀ̽º
JavaMail ¼¼¼ÇÀº Sun ONE Application Server¸¦ ÅëÇØ ¸¸µé°í °ü¸®ÇÒ ¼ö ÀÖ´Â J2EE ÀÚ¿øÀÔ´Ï´Ù. JavaMail ¼¼¼Ç¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "JavaMail ÀÚ¿ø Á¤º¸"¸¦ ÂüÁ¶ÇϽʽÿÀ.
JMS ´ë»ó
JMS (Java Messaging Service)´Â °Ô½Ã-°¡ÀÔ ¸ðµ¨°ú ½Å·ÚÇÒ ¼ö ÀÖ´Â ÁöÁ¡°£ ¸Þ½Ã¡À» Áö¿øÇÏ´Â ¸Þ½Ã¡¿ë Ç¥ÁØ APIÀÔ´Ï´Ù. ÀÌ »ç¾ç¿¡´Â ÁöÁ¡°£ ¸Þ½Ã¡°ú °Ô½Ã-°¡ÀÔ ¸Þ½Ã¡À» ¸ðµÎ ±¸ÇöÇÏ´Â JMS °ø±ÞÀÚ°¡ ÇÊ¿äÇÕ´Ï´Ù.
JMS´Â °ü¸® ´ë»ó °´Ã¼ÀÇ µÎ °¡Áö ÀÏ¹Ý À¯Çü, ¿¬°á ÆÑÅ丮¿Í ´ë»óÀ» Á¦°øÇÕ´Ï´Ù. µÎ °¡Áö ¸ðµÎ °ø±ÞÀÚ °ü·Ã Á¤º¸¸¦ ĸ½¶ÈÇÏÁö¸¸ JMS Ŭ¶óÀ̾ðÆ® ³»¿¡¼ ¾ÆÁÖ ´Ù¸£°Ô »ç¿ëµË´Ï´Ù. ¿¬°á ÆÑÅ丮´Â ¸Þ½ÃÁö ¼¹ö¸¦ ¿¬°áÇÏ´Â µ¥ »ç¿ëµÇ¸ç ´ë»ó °´Ã¼´Â JMS ¸Þ½Ã¡ ¼ºñ½º¿¡¼ »ç¿ëÇÏ´Â ¹°¸®Àû ´ë»óÀ» ½Äº°ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
JNDI (Java Naming and Directory Interface) Á¤º¸
ÀÌ Àý¿¡¼´Â JNDI (Java Naming and Directory Interface)¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. JNDI´Â ´Ù¾çÇÑ Á¾·ùÀÇ À̸§ ÁöÁ¤ ¹× µð·ºÅ丮 ¼ºñ½º¸¦ ¾×¼¼½ºÇϱâ À§ÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º(API)ÀÔ´Ï´Ù. J2EE ±¸¼º ¿ä¼Ò´Â JNDI Á¶È¸ ¸Þ¼Òµå¸¦ È£ÃâÇÏ¿© °´Ã¼¸¦ ã½À´Ï´Ù.
ÀÌ Àý¿¡¼´Â ´ÙÀ½ ³»¿ëÀ» ¼³¸íÇÕ´Ï´Ù.
- JNDI ±¸Á¶
- J2EE À̸§ ÁöÁ¤ ¼ºñ½º
- À̸§ ÁöÁ¤ ÂüÁ¶ ¹× ¹ÙÀεù Á¤º¸
- J2EE Ç¥ÁØ ¹èÆ÷ ¼³¸íÀÚÀÇ À̸§ ÁöÁ¤ ÂüÁ¶
- JNDI ¿¬°á ÆÑÅ丮
JNDI ±¸Á¶
JNDI ±¸Á¶´Â API (Application Programmer's Interface)¿Í SPI (Service Provider Interface)·Î ±¸¼ºµË´Ï´Ù. Java ÀÀ¿ë ÇÁ·Î±×·¥Àº JNDI API¸¦ »ç¿ëÇÏ¿© ´Ù¾çÇÑ À̸§ ÁöÁ¤ ¹× µð·ºÅ丮 ¼ºñ½º¸¦ ¾×¼¼½ºÇÕ´Ï´Ù. SPI´Â ´Ù¾çÇÑ À̸§ ÁöÁ¤ ¹× µð·ºÅ丮 ¼ºñ½º°¡ Åõ¸íÇÏ°Ô Ç÷¯±× ÀÎµÇ°Ô ÇÔÀ¸·Î½á Java ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ JNDI API¸¦ »ç¿ëÇÏ¿© ÇØ´ç ¼ºñ½º¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ°Ô ÇØÁÝ´Ï´Ù. ´ÙÀ½ ±×¸² "JNDI ±¸Á¶ÀÇ °³¿ä"´Â JNDI API¸¦ ÅëÇØ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â ¼ºñ½º¸¦ º¸¿©ÁÝ´Ï´Ù.
   JNDI ±¸Á¶ÀÇ °³¿ä
J2EE À̸§ ÁöÁ¤ ¼ºñ½º
JNDI À̸§Àº »ç¶÷µé¿¡°Ô Ä£¼÷ÇÑ °´Ã¼ À̸§ÀÔ´Ï´Ù. ÀÌ·¯ÇÑ À̸§Àº J2EE ¼¹ö¿¡¼ Á¦°øÇÏ´Â À̸§ ÁöÁ¤ ¹× µð·ºÅ丮 ¼ºñ½º¿¡ ÀÇÇØ °´Ã¼¿¡ ¹ÙÀεùµË´Ï´Ù. J2EE ±¸¼º ¿ä¼Ò´Â JNDI API¸¦ ÅëÇØ ÀÌ ¼ºñ½º¿¡ ¾×¼¼½ºÇϹǷΠÀϹÝÀûÀ¸·Î »ç¶÷µé¿¡°Ô Ä£¼÷ÇÑ °´Ã¼ À̸§À» JNDI À̸§À̶ó°í ÇÕ´Ï´Ù. Pointbase µ¥ÀÌÅͺ£À̽ºÀÇ JNDI À̸§Àº jdbc/PointbaseÀÔ´Ï´Ù. Sun ONE Application Server´Â ½ÃÀÛÇÒ ¶§ ±¸¼º ÆÄÀϷκÎÅÍ Á¤º¸¸¦ Àоî À̸§ °ø°£¿¡ JNDI µ¥ÀÌÅͺ£À̽º À̸§À» ÀÚµ¿À¸·Î Ãß°¡ÇÕ´Ï´Ù.
J2EE ÀÀ¿ë ÇÁ·Î±×·¥ Ŭ¶óÀ̾ðÆ®, Enterprise Bean ¹× À¥ ±¸¼º ¿ä¼Ò¿¡´Â JNDI À̸§ ÁöÁ¤ ȯ°æ¿¡ ´ëÇÑ ¾×¼¼½º ±ÇÇÑÀÌ ÇÊ¿äÇÕ´Ï´Ù.
ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼ÒÀÇ À̸§ ÁöÁ¤ ȯ°æÀº ¹èÆ÷³ª Á¶¸³ Áß¿¡ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò ºñÁî´Ï½º ³í¸®ÀÇ »ç¿ëÀÚ Á¤ÀǸ¦ Çã¿ëÇÏ´Â ¸ÞÄ¿´ÏÁòÀÔ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò ȯ°æÀ» »ç¿ëÇϸé ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼ÒÀÇ ¼Ò½º Äڵ带 ¾×¼¼½ºÇϰųª º¯°æÇÒ ÇÊ¿ä ¾øÀÌ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò¸¦ »ç¿ëÀÚ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
J2EE ÄÁÅ×À̳ʴ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼ÒÀÇ È¯°æÀ» ±¸ÇöÇϸç ÀÌ·¯ÇÑ È¯°æÀ» ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò ÀνºÅϽº¿¡ JNDI À̸§ ÁöÁ¤ ÄÁÅؽºÆ®·Î Á¦°øÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼ÒÀÇ È¯°æÀº ´ÙÀ½°ú °°ÀÌ »ç¿ëµË´Ï´Ù.
- ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼ÒÀÇ ºñÁî´Ï½º ¸Þ¼Òµå´Â JNDI ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© ȯ°æ¿¡ ¾×¼¼½ºÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò °ø±ÞÀÚ´Â ÇØ´ç ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò°¡ ·±Å¸ÀÓ¿¡ ÀÚü ȯ°æ ³»¿¡¼ ÇÊ¿ä·Î ÇÏ´Â ¸ðµç ȯ°æ Ç׸ñÀ» ¹èÆ÷ ¼³¸íÀÚ¿¡ ¼±¾ðÇÕ´Ï´Ù.
- ÄÁÅ×À̳ʴ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò ȯ°æÀ» ÀúÀåÇÏ´Â JNDI À̸§ ÁöÁ¤ ÄÁÅؽºÆ® ±¸ÇöÀ» Á¦°øÇÕ´Ï´Ù. ÄÁÅ×À̳ʴ ¹èÆ÷ÀÚ°¡ °¢ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼ÒÀÇ È¯°æÀ» ¸¸µé°í °ü¸®ÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â µµ±¸µµ Á¦°øÇÕ´Ï´Ù.
- ¹èÆ÷ÀÚ´Â ÄÁÅ×À̳ʿ¡¼ Á¦°øÇÏ´Â µµ±¸¸¦ »ç¿ëÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò ¹èÆ÷ ¼³¸íÀÚ¿¡ ¼±¾ðµÇ¾î Àִ ȯ°æ Ç׸ñÀ» ÃʱâÈÇÕ´Ï´Ù. ¹èÆ÷Àڴ ȯ°æ Ç׸ñÀÇ °ªÀ» ¼³Á¤ÇÏ°í ¼öÁ¤ÇÕ´Ï´Ù.
- ÄÁÅ×À̳ʴ ·±Å¸ÀÓ¿¡ ȯ°æ À̸§ ÁöÁ¤ ÄÁÅؽºÆ®¸¦ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò ÀνºÅϽº¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼ÒÀÇ ÀνºÅϽº´Â JNDI ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© ȯ°æ Ç׸ñÀÇ °ªÀ» °¡Á®¿É´Ï´Ù.
°¢ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò´Â °íÀ¯ ȯ°æ Ç׸ñ ÁýÇÕÀ» Á¤ÀÇÇÕ´Ï´Ù. °°Àº ÄÁÅ×ÀÌ³Ê ³»ÀÇ ¸ðµç ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò ÀνºÅϽº´Â °°Àº ȯ°æ Ç׸ñÀ» °øÀ¯ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò ÀνºÅϽº´Â ·±Å¸ÀÓ¿¡ ȯ°æÀ» ¼öÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù. À¥ ÄÁÅ×ÀÌ³Ê ¹× EJB ÄÁÅ×ÀÌ³Ê °°Àº J2EE ÄÁÅ×À̳ʰ¡ JNDI À̸§ ÁöÁ¤ ¼ºñ½º¸¦ »ç¿ëÇÏ¿© °´Ã¼¸¦ Á¶È¸ÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "J2EE ÄÁÅ×ÀÌ³Ê ±¸¼º"À» ÂüÁ¶ÇϽʽÿÀ.
À̸§ ÁöÁ¤ ÂüÁ¶ ¹× ¹ÙÀεù Á¤º¸
ÀÚ¿ø ÂüÁ¶´Â ÀÚ¿ø¿¡ ´ëÇÑ ±¸¼º ¿ä¼ÒÀÇ ÄÚµåÈµÈ À̸§À» ½Äº°ÇÏ´Â ¹èÆ÷ ¼³¸íÀÚÀÇ ¿ä¼ÒÀÔ´Ï´Ù. Áï, ÄÚµåÈµÈ À̸§Àº ÀÚ¿øÀÇ ¿¬°á ÆÑÅ丮¸¦ ÂüÁ¶ÇÕ´Ï´Ù. ´ÙÀ½ ÀýÀÇ ¿¹¿¡¼ ÀÚ¿ø ÂüÁ¶ À̸§Àº jdbc/SavingsAccountDBÀÔ´Ï´Ù.
ÀÚ¿øÀÇ JNDI À̸§°ú ÀÚ¿ø ÂüÁ¶ÀÇ À̸§Àº °°Áö ¾Ê½À´Ï´Ù. ÀÌ ¹æ¹ýÀ¸·Î À̸§À» ÁöÁ¤ÇÏ·Á¸é ¹èÆ÷ Àü¿¡ µÎ À̸§À» ¸ÅÇÎÇØ¾ß ÇÏÁö¸¸ ÀÚ¿øÀ¸·ÎºÎÅÍ ±¸¼º ¿ä¼Ò¸¦ ºÐ¸®Çϱ⵵ ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ºÐ¸® ±â´ÉÀ¸·Î ÀÎÇØ ³ªÁß¿¡ ±¸¼º ¿ä¼Ò°¡ ´Ù¸¥ ÀÚ¿ø¿¡ ¾×¼¼½ºÇØ¾ß ÇÏ´Â °æ¿ì Äڵ忡¼ À̸§À» º¯°æÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. ¶ÇÇÑ ÀÌ·¯ÇÑ À¶Å뼺À¸·Î ÀÎÇØ ±âÁ¸ÀÇ ±¸¼º ¿ä¼Ò·ÎºÎÅÍ J2EE ÀÀ¿ë ÇÁ·Î±×·¥À» ¾î¼Àºí ÇϱⰡ ½±½À´Ï´Ù.
´ÙÀ½ Ç¥, "JNDI Á¶È¸ ¹× °ü·Ã ÂüÁ¶"´Â Sun ONE Application Server°¡ »ç¿ëÇÏ´Â J2EE ÀÚ¿ø¿¡ ´ëÇÑ JNDI Á¶È¸ ¹× °ü·Ã ÂüÁ¶¸¦ ³ª¿ÇÕ´Ï´Ù.
J2EE Ç¥ÁØ ¹èÆ÷ ¼³¸íÀÚÀÇ À̸§ ÁöÁ¤ ÂüÁ¶
À̸§ ÁöÁ¤ ÂüÁ¶´Â ÁÖ¾îÁø À̸§ ÁöÁ¤ ÄÁÅؽºÆ®¿¡¼ °´Ã¼¸¦ Á¶È¸Çϱâ À§ÇØ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ »ç¿ëÇÏ´Â ¹®ÀÚ¿ÀÔ´Ï´Ù. °¢ J2EE ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇØ À̸§ ÁöÁ¤ ÄÁÅؽºÆ®°¡ ÀÖ°í Ç¥ÁØ ±¸¼º ¿ä¼Ò ¹èÆ÷ ¼³¸íÀÚ¿¡ ÂüÁ¶°¡ ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù. ÀÌ Àý¿¡¼´Â Sun ONE Application Server¿¡¼ »ç¿ëÇϴ ǥÁØ ¹èÆ÷ ¼³¸íÀÚ¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. ÀÌ ÀýÀº ´ÙÀ½ ³»¿ëÀ¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
- ÀÀ¿ë ÇÁ·Î±×·¥ ȯ°æ Ç׸ñ
- EJB ÂüÁ¶
- ÀÚ¿ø °ü¸®ÀÚ ¿¬°á ÆÑÅ丮¿¡ ´ëÇÑ ÂüÁ¶
- ÀÚ¿ø ȯ°æ ÂüÁ¶
- UserTransaction ÂüÁ¶
- COSNaming ¼ºñ½º
ÀÀ¿ë ÇÁ·Î±×·¥ ȯ°æ Ç׸ñ
<env-entry>¸¦ »ç¿ëÇÏ¿© Á¤ÀÇÇϴ ȯ°æ Ç׸ñÀº J2EE ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ¹èÆ÷ ½Ã°£ ¸Å°³ º¯¼ö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. À¥ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ °æ¿ì <context-param>À» »ç¿ëÇÏ¿© ¼ºí¸´ ÄÁÅؽºÆ® ÃʱâÈ ¸Å°³ º¯¼ö¸¦ Á¤ÀÇÇÒ ¼ö ÀÖÁö¸¸ ÀÀ¿ë ÇÁ·Î±×·¥ ¹èÆ÷ÀÚ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¸Å°³ º¯¼öÀÇ À̸§, À¯Çü ¹× °ªÀ» ¸í½ÃÀûÀ¸·Î ÁöÁ¤ÇÏ¿© ÀÌ·¯ÇÑ ¸Å°³ º¯¼ö¸¦ ±¸¼ºÇϹǷΠ<env-entry>°¡ ¼±È£µÇ´Â ¹æ¹ýÀÔ´Ï´Ù.
´ÙÀ½ ¿¹¿¡¼´Â J2EE Ç¥ÁØ ¹èÆ÷ ¼³¸íÀÚ¿¡ ÁöÁ¤µÇ¾î ÀÖ´Â <env-entry>ÀÇ ±¸¹®À» ¼³¸íÇÕ´Ï´Ù.
<env-entry>
<description> Send pincode by mail </description>
<env-entry-name> mailPincode </env-entry-name>
<env-entry-value> false </env-entry-value>
<env-entry-type> java.lang.Boolean </env-entry-type>
</env-entry><env-entry-type> ű״ Ç׸ñ¿¡ ´ëÇÑ Àüü Ŭ·¡½º À̸§À» ÁöÁ¤ÇÕ´Ï´Ù. ´ÙÀ½Àº ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò(¼ºí¸´/JSP, Entity Bean ¶Ç´Â IIOP ÀÀ¿ë ÇÁ·Î±×·¥ Ŭ¶óÀ̾ðÆ®¸¦ °¡¸®Å°´Â ¿ë¾î)¿¡¼ JNDI¸¦ »ç¿ëÇÏ¿© <env-entry>¸¦ Á¶È¸ÇÒ ¼ö ÀÖ´Â ÄÚµå Á¶°¢ÀÔ´Ï´Ù.
Context initContext = new InitialContext();
Boolean mailPincode = (Boolean)
initContext.lookup("java:comp/env/mailPincode");// one could use relative names into the sub-context
Context envContext = initContext.lookup("java:comp/env");
Boolean mailPincode = (Boolean)
envContext.lookup("mailPincode");EJB ÂüÁ¶
´ÙÀ½ ¿¹¿¡¼ ¼³¸íÇÏ´Â °Íó·³ ¹èÆ÷ ¼³¸íÀÚ Áö¿ø ±â´É°ú´Â º°µµ·Î JNDI À̸§ ÁöÁ¤ ¼ºñ½º´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ "³í¸®" À̸§(EJB ÂüÁ¶)À» »ç¿ëÇÏ¿© Enterprise BeanÀÇ È¨ ÀÎÅÍÆäÀ̽º¿¡ ¸ÅÇÎÇÏ°Ô ÇØÁÝ´Ï´Ù.
<ejb-ref>
<ejb-ref-name> ejb/EmplRecord </ejb-ref-name>
<ejb-ref-type> Entity </ejb-ref-type>
<home> com.wombat.empl.EmployeeRecordHome </home>
<remote> com.wombat.empl.EmployeeRecord </remote>
<ejb-link> EmployeeEJB </ejb-link>
</ejb-ref>JSP¿Í °°Àº ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò´Â ´ÙÀ½ ¿¹¿¡¼ ¼³¸íÇÏ´Â °Íó·³ JNDI¸¦ »ç¿ëÇÏ¿© EJB Ȩ °´Ã¼¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
Context initContext = new InitialContext();
Context envContext = initContext.lookup("java:comp/env");
Object result = envContext.lookup("ejb/EmplRecord");
EmployeeRecordHome emplRecordHome = (EmployeeRecordHome)
javax.rmi.PortableRemoteObject.narrow(result, EmployeeRecordHome.class);ejb-ref-name ¿ä¼Ò´Â À§ÀÇ ¿¹¿¡¼¿Í °°ÀÌ ÀÀ¿ë ÇÁ·Î±×·¥ Äڵ忡 »ç¿ëµÇ´Â ¹®ÀÚ¿À» Á¤ÀÇÇÕ´Ï´Ù. ejb-link ¿ä¼Ò´Â ejb-jar.xml¿¡¼ Á¤ÀÇµÈ Entity BeanÀÇ ejb-name ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© Á¤ÀǵǴ ´ë»ó Enterprise Bean¿¡ ÀÌ·¯ÇÑ ÂüÁ¶¸¦ ¿¬°áÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ¹èÆ÷ ¼³¸íÀÚ³ª Enterprise Bean ¼³¸íÀÚ Áß Çϳª¸¦ ¼öÁ¤ÇÏÁö ¾Ê°í ¿¬°áÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÚ¿ø °ü¸®ÀÚ ¿¬°á ÆÑÅ丮¿¡ ´ëÇÑ ÂüÁ¶
ÆÑÅ丮´Â ¿äû ½Ã ´Ù¸¥ °´Ã¼¸¦ ¸¸µå´Â °´Ã¼ÀÔ´Ï´Ù. ÀÚ¿ø ÆÑÅ丮´Â µ¥ÀÌÅͺ£À̽º ¿¬°áÀ̳ª ¸Þ½ÃÁö ¼ºñ½º ¿¬°á °°Àº ÀÚ¿ø °´Ã¼¸¦ ¸¸µé¸ç ÀÌ·¯ÇÑ °´Ã¼´Â Ç¥ÁØ ¹èÆ÷ ¼³¸íÀÚÀÇ <resource-ref> ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© ±¸¼ºµË´Ï´Ù.
´ÙÀ½ ¿¹¿¡¼´Â ÆÑÅ丮 »ç¿ëÀ» ¼³¸íÇÕ´Ï´Ù.
¿¹ A:
javax.sql.DataSource À¯ÇüÀÇ °´Ã¼¸¦ ¹ÝȯÇÏ´Â JDBC ¿¬°á ÆÑÅ丮¿¡ ´ëÇÑ ÂüÁ¶ ¼±¾ð
<resource-ref>
<description> Primary database </description>
<res-ref-name> jdbc/primaryDB </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>¿¹ B:
´ÙÀ½Àº JavaMail ¼¼¼Ç ÀÚ¿ø ÆÑÅ丮¸¦ ÂüÁ¶ÇÏ´Â ¿¹ÀÔ´Ï´Ù.
<resource-ref>
<description> mail Session </description>
<res-ref-name> mail/Session </res-ref-name>
<res-type> javax.mail.Session </res-type>
<res-auth> Container </res-auth>
</resource-ref><res-type>Àº ÀÚ¿ø ÆÑÅ丮ÀÇ Àüü Ŭ·¡½º À̸§ÀÔ´Ï´Ù. <res-auth> º¯¼ö¸¦ Container³ª Application¿¡ °ªÀ¸·Î ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù. JavaMail ¼¼¼Ç ÀÚ¿ø ÆÑÅ丮 ±¸¼º¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "JavaMail ÀÚ¿ø Á¤º¸"¸¦ ÂüÁ¶ÇϽʽÿÀ.
Container°¡ ÁöÁ¤µÇ¾î ÀÖ´Â °æ¿ì À¥ ÄÁÅ×À̳ʴ ÀÚ¿ø ÆÑÅ丮¸¦ JNDI Á¶È¸ ·¹Áö½ºÆ®¸®¿¡ ¹ÙÀεùÇϱâ Àü¿¡ ÀÎÁõÀ» ó¸®ÇÕ´Ï´Ù. ApplicationÀÌ ÁöÁ¤µÇ¾î ÀÖÀ¸¸é ¼ºí¸´ÀÌ ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀ¸·Î ÀÎÁõÀ» ó¸®ÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ÀÚ¿ø À¯ÇüÀ» ¼³¸íÇÏ´Â º°µµÀÇ ÇÏÀ§ ÄÁÅؽºÆ®¿¡¼ ´Ù¾çÇÑ ÀÚ¿ø ÆÑÅ丮¸¦ Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.
- JDBC javax.sql.DataSource ÆÑÅ丮ÀÇ °æ¿ì jdbc/
- javax.jms.QueueConnectionFactory ¶Ç´Â JMS javax.jms.TopicConnectionFactoryÀÇ °æ¿ì jms/
- JavaMail javax.mail.Session ÆÑÅ丮ÀÇ °æ¿ì mail/
- java.net.URL factoryÀÇ °æ¿ì url/
´ÙÀ½Àº ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼ÒÀÇ JDBC ¿¬°áÀ» ÀÎÁõÀ» ó¸®ÇÏ´Â ÄÁÅ×ÀÌ³Ê¿Í ¿¬°áÇϱâ À§ÇÑ ÄÚµå Á¶°¢ÀÔ´Ï´Ù.
InitialContext initContext = new InitialContext();
DataSource source =
(DataSource) initContext.lookup("java:comp/env/jdbc/primaryDB");
Connection conn = source.getConnection();ÀÌ·¯ÇÑ ÀÚ¿ø ÂüÁ¶°¡ Á¦´ë·Î ÀÛµ¿ÇÏ·Á¸é res-ref-nameÀÌ ·±Å¸ÀÓ¿¡ À¯È¿ÇÑ ÀÚ¿ø ÆÑÅ丮¿¡ ¸ÅÇεǾî¾ß ÇÕ´Ï´Ù.
ÀÚ¿ø ȯ°æ ÂüÁ¶
ÀÚ¿ø ȯ°æ ÂüÁ¶´Â JNDI Á¶È¸¸¦ ÅëÇØ ÀÚ¿ø°ú °ü·ÃµÈ °ü¸® ´ë»ó °´Ã¼¿¡ ¾×¼¼½ºÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ JMS ´ë»ó °´Ã¼¿¡ ¾×¼¼½ºÇØ¾ß ÇÒ °æ¿ì°¡ ÀÖ½À´Ï´Ù. Ç¥ÁØ ¹èÆ÷ ¼³¸íÀÚ¿¡ Á¤ÀǵǾî ÀÖ´Â <resource-env-ref> ¿ä¼Ò¸¦ »ç¿ëÇϸé ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÀÚ¿ø ¿ä±¸ »çÇ×À» ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù.
<resource-env-ref>¿Í <resource-ref> ¿ä¼ÒÀÇ ÁÖ¿äÇÑ Â÷ÀÌÁ¡Àº ƯÁ¤ ÀÚ¿ø ÀÎÁõ ¿ä±¸ »çÇ×ÀÌ ¾ø´Ù´Â °ÍÀÔ´Ï´Ù. µÎ °¡Áö ¿ä¼Ò ¸ðµÎ ÀÚ¿ø ÆÑÅ丮 ¼³¸íÀÚ°¡ ¹é¾÷ÇØ¾ß ÇÕ´Ï´Ù.
¿¹:
<resource-env-ref>
<description> My Topic </description>
<res-env-ref-name> jms/MyTopic </res-ref-name>
<res-env-ref-type> javax.jms.Topic </res-type>
</resource-env-ref>´ÙÀ½ Äڵ带 »ç¿ëÇϸé JMS Ç׸ñ °´Ã¼¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
InitialContext initContext = new InitialContext();
javax.jms.Topic myTopic =
(javax.jms.Topic) initContext.lookup("java:comp/env/jms/MyTopic");ÀÌ·¯ÇÑ resource-env-ref º¯¼ö°¡ ¿Ã¹Ù·Î ÀÛµ¿ÇÏ·Á¸é °ü¸®ÀÚ°¡ ·±Å¸ÀÓ¿¡ ´ë»ó ÀÚ¿ø ÆÑÅ丮¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ¸¸µé¾î¾ß ÇÕ´Ï´Ù. JMS Ç׸ñ ¹× ´ë±â¿ ´ë»ó¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "JMS ¼ºñ½º »ç¿ë"À» ÂüÁ¶ÇϽʽÿÀ.
UserTransaction ÂüÁ¶
J2EE´Â JNDI À̸§ java:comp/UserTransaction¿¡¼ ÄÁÅ×À̳ʰ¡ UserTransaction °´Ã¼ ±¸ÇöÀ» Á¦°øÇÒ °ÍÀ» ¿ä±¸ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥Àº UserTransaction °´Ã¼¸¦ »ç¿ëÇÏ¿© Æ®·£Àè¼ÇÀ» ½ÃÀÛ, ¿Ï°á ¹× Áß´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀ¸·Î Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÏ°í ¼öÇàÇϱâ À§ÇØ ±¸¼º ¿ä¼Ò´Â java:comp/UserTransaction¿¡ ´ëÇØ JNDI Á¶È¸¸¦ ÇÏ¿© ÄÁÅ×À̳ÊÀÇ ±âº» Æ®·£Àè¼Ç Á¶Á¤ÀÚ¿¡ ´ëÇÑ ÂüÁ¶¸¦ ¾ò½À´Ï´Ù. ¹ÝȯµÈ °´Ã¼´Â javax.transaction.UserTransaction ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϸç ÇÁ·Î±×·¥¿¡¼ Æ®·£Àè¼ÇÀÇ ½ÃÀÛ, ¿Ï°á, ·Ñ¹é ¹× »óÅ Äõ¸®¸¦ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Sun ONE Application ServerÀÇ JNDI ±¸ÇöÀº ÀÌ·¯ÇÑ Æ®·£Àè¼Ç Á¶Á¤ÀÚ Á¶È¸¸¦ Áö¿øÇÕ´Ï´Ù. javax.transaction.UserTransaction ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "Æ®·£Àè¼Ç ¼ºñ½º »ç¿ë"À» ÂüÁ¶ÇϽʽÿÀ.
Ãʱâ À̸§ ÁöÁ¤ ÄÁÅؽºÆ®
Sun ONE Application Server¿¡¼ Áö¿øÇÏ´Â À̸§ ÁöÁ¤ ±â´ÉÀº ±âº»ÀûÀ¸·Î J2EE 1.3À» ±â¹ÝÀ¸·Î ÇÏ¸ç ¸î °¡Áö Çâ»óµÈ ±â´ÉÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò°¡ InitialContext()¸¦ ÅëÇØ Ãʱâ ÄÁÅؽºÆ®¸¦ ¸¸µé¸é Sun ONE Application Server´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ À̸§ ÁöÁ¤ ȯ°æ¿¡ ´ëÇÑ ÇÚµé ¿ªÇÒÀ» ÇÏ´Â °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù. ±×·¯¸é ÀÌ °´Ã¼´Â java:comp/env À̸§ °ø°£¿¡ ´ëÇÑ ÇÏÀ§ ÄÁÅؽºÆ®¸¦ Á¦°øÇÕ´Ï´Ù. °¢ ÀÀ¿ë ÇÁ·Î±×·¥Àº °íÀ¯ÇÑ À̸§ °ø°£À» °®½À´Ï´Ù. Áï, °¢ ÀÀ¿ë ÇÁ·Î±×·¥º°·Î java:comp/env À̸§ °ø°£ÀÌ Á¸ÀçÇϹǷΠÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ À̸§ °ø°£¿¡ ¹ÙÀεùµÈ °´Ã¼´Â ´Ù¸¥ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ¹ÙÀεùµÈ °´Ã¼¿Í Ãæµ¹ÇÏÁö ¾Ê½À´Ï´Ù.
COSNaming ¼ºñ½º
EJB »óÈ£ ¿î¿ë¼º ÇÁ·ÎÅäÄÝÀº JNDI API¸¦ »ç¿ëÇÏ¿© EJB °´Ã¼¸¦ Á¶È¸ÇÒ ¶§ COSNaming ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒ °ÍÀ» ¿ä±¸ÇÕ´Ï´Ù.
CORBA CosNaming ¼ºñ½º¿¡¼ EJBHome °´Ã¼ ÂüÁ¶¸¦ °Ô½ÃÇÏ·Á¸é EJB ÄÁÅ×À̳ʰ¡ ÇÊ¿äÇÕ´Ï´Ù. CosNaming ¼ºñ½º´Â Á¤ÀǵǾî ÀÖ´Â CosNaming ¸ðµâ¿¡¼ IDL ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß Çϸç Ŭ¶óÀ̾ðÆ®°¡ IIOP¸¦ ÅëÇØ È®ÀÎ ¹× ¸ñ·Ï ÀÛ¾÷À» È£ÃâÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.
CosNaming ¼ºñ½º´Â ·çÆ® NamingContext °´Ã¼ÀÇ È£½ºÆ®, Æ÷Æ® ¹× °´Ã¼ Å°¸¦ Á¦°øÇϱâ À§ÇØ CORBA Interoperable Name Service »ç¾çÀÇ ¿ä±¸ »çÇ×À» µû¶ó¾ß ÇÕ´Ï´Ù. CosNaming ¼ºñ½º´Â ±¤°í È£½ºÆ®, Æ÷Æ® ¹× °´Ã¼ Å°¿¡¼ ·çÆ® NamingContextÀÇ IIOP È£ÃâÀ» ó¸®ÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.
Ŭ¶óÀ̾ðÆ® ÄÁÅ×À̳Ê(Áï, EJB, À¥ ¶Ç´Â ÀÀ¿ë ÇÁ·Î±×·¥ Ŭ¶óÀ̾ðÆ® ÄÁÅ×À̳Ê)´Â Ç¥ÁØ CosNaming API¸¦ »ç¿ëÇÏ¿© ¼¹öÀÇ CosNaming ¼ºñ½º¿¡ ¿¬°áÇÏ°í EJBHome °´Ã¼¸¦ È®ÀÎÇϱâ À§ÇØ Interoperable Name Service »ç¾ç¿¡ Á¤ÀǵǾî ÀÖ´Â ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÏ´Â JNDI CosNaming ¼ºñ½º °ø±ÞÀÚ¸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. JNDI CosNaming ¼ºñ½º °ø±ÞÀÚ´Â JNDI SPI ±¸Á¶¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ°í »ç¿ëÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù. JNDI CosNaming ¼ºñ½º °ø±ÞÀÚ´Â ´ÙÀ½ URL·ÎºÎÅÍ °´Ã¼ ÂüÁ¶¸¦ ¸¸µé¾î ¼¹ö CosNaming ¼ºñ½ºÀÇ ·çÆ® NamingContext¿¡ ¾×¼¼½ºÇØ¾ß ÇÕ´Ï´Ù.
corbaloc:iiop:1.2@<host>:<port>/<objectkey> (¿©±â¼ <host>, <port>, <objectkey>´Â ¼¹öÀÇ CosNaming ¼ºñ½º ¶Ç´Â ÀÌ¿Í µ¿µîÇÑ ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÏ¿© ±¤°íÇÑ ·çÆ® NamingContext¿¡ ÇØ´çÇÏ´Â °ªÀÓ)
¹èÆ÷ ½Ã Ŭ¶óÀ̾ðÆ® ÄÁÅ×À̳ÊÀÇ °³¹ßÀÚ´Â ¼¹öÀÇ CosNaming ¼ºñ½ºÀÇ È£½ºÆ®, Æ÷Æ® ¹× °´Ã¼ Å°¿Í Ŭ¶óÀ̾ðÆ® ±¸¼º ¿ä¼Ò ¹èÆ÷ ¼³¸íÀÚÀÇ °¢ ejb-ref ¿ä¼Ò¿¡ ´ëÇØ ¼¹öÀÇ À̸§ °ø°£À» °Ë»öÇÏ´Â °Í°ú °°Àº ÀÛ¾÷À» ¼öÇàÇÏ¿© ¼¹ö EJBHome °´Ã¼ÀÇCosNaming À̸§À» ¾ò¾î¾ß ÇÕ´Ï´Ù. JNDI Á¶È¸ È£Ã⠽à Ŭ¶óÀ̾ðÆ® Äڵ忡¼ »ç¿ëÇÏ´Â ejb-ref-nameÀº EJBHome °´Ã¼ÀÇ CosNaming À̸§¿¡ ¿¬°áµÇ¾î¾ß ÇÕ´Ï´Ù. ·±Å¸ÀÓ¿¡ Ŭ¶óÀ̾ðÆ® ±¸¼º ¿ä¼ÒÀÇ JNDI Á¶È¸ È£ÃâÀº CosNaming ¼ºñ½º °ø±ÞÀÚ¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ ¼ºñ½º °ø±ÞÀÚ´Â ¼¹öÀÇ CosNaming ¼ºñ½º¿¡ ¿¬°áÇÏ¿© CosNaming À̸§À» °áÁ¤ÇÑ ´ÙÀ½ EJBHome °´Ã¼ ÂüÁ¶¸¦ Ŭ¶óÀ̾ðÆ® ±¸¼º ¿ä¼Ò¿¡ ¹ÝȯÇÕ´Ï´Ù.
EJBHome °´Ã¼ÀÇ À̸§Àº Á¦°øµÈ È£½ºÆ®¿Í Æ÷Æ®¿¡¼ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â CosNaming ¼ºñ½ºÀÇ À̸§ °ø°£ ³»¿¡ ÀÖÀ¸¹Ç·Î Ŭ¶óÀ̾ðÆ®¿Í ¼¹ö ÄÁÅ×À̳ÊÀÇ À̸§ °ø°£À» °áÇÕÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.
CosNaming »ç¿ëÀÇ ÀåÁ¡Àº ºñ J2EE CORBA Ŭ¶óÀ̾ðÆ® ¹× ¼¹ö¿ÍÀÇ »óÈ£ ¿î¿ë¼ºÀ» ºñ·ÔÇÏ¿© »óÈ£ ¿î¿ë¼º¿¡ ÇÊ¿äÇÑ IIOP ÀÎÇÁ¶ó¿Í ´õ Àß ÅëÇյȴٴ Á¡ÀÔ´Ï´Ù. CosNamingÀº CORBA °´Ã¼¸¸ ÀúÀåÇϱ⠶§¹®¿¡ °ø±Þ¾÷ü´Â ´Ù¸¥ ÀÚ¿øÀ» ÀúÀåÇÏ´Â µ¥ ´Ù¸¥ ¿£ÅÍÇÁ¶óÀÌÁî µð·ºÅ丮 ¼ºñ½º¸¦ »ç¿ëÇÒ °¡´É¼ºÀÌ ³ô½À´Ï´Ù.
Sun ONE Application Server´Â J2EE 1.3 »ç¾ç¿¡ µû¶ó JNDIÀÇ ¸ðµç À̸§ ÁöÁ¤ ÀÚ¿øÀ» ÅëÇÕÇÕ´Ï´Ù.
CosNaming °ø±ÞÀÚÀü¿ª JNDI À̸§ °ø°£(IIOP ÀÀ¿ë ÇÁ·Î±×·¥ Ŭ¶óÀ̾ðÆ® ¾×¼¼½º °¡´É)À» Áö¿øÇϱâ À§ÇØ Sun ONE Application Server´Â CORBA ÂüÁ¶(¿ø°Ý EJB ÂüÁ¶) ¹ÙÀεùÀ» Áö¿øÇÏ´Â J2EE ±â¹Ý CosNaming °ø±ÞÀÚ¸¦ Æ÷ÇÔÇÕ´Ï´Ù. IIOP Ŭ¶óÀ̾ðÆ®¿¡ ¹ÝȯµÇ´Â InitialContext´Â CosNaming °ø±ÞÀÚÀÔ´Ï´Ù. Sun ONE Application Server ¼¹öÀÇ ÀνºÅϽº´Â IIOP Ŭ¶óÀ̾ðÆ®°¡ Á¶È¸ÇÏ°í ¹ÙÀεùÇÏ´Â Entity BeanÀ» µî·ÏÇÕ´Ï´Ù.
Sun ONE Application Server¿¡¼´Â CosNaming¿¡ ÀúÀåµÇ¾î ÀÖ´Â °´Ã¼¸¦ ó¸®ÇÏ¸ç ·ÎÄà JNDI À̸§ ÁöÁ¤ ȯ°æÀº ÀϽÃÀûÀÎ °ÍÀÓ¿¡ À¯ÀÇÇϽʽÿÀ. Áï, ÀÀ¿ë ÇÁ·Î±×·¥À» Àç·ÎµåÇϰųª ¼¹ö¸¦ ½ÃÀÛÇÒ ¶§¸¶´Ù ¸ðµç °ü·Ã °´Ã¼´Â À̸§ °ø°£¿¡ ´Ù½Ã ¹ÙÀεùµË´Ï´Ù. CORBA/IIOP Ŭ¶óÀ̾ðÆ® ±¸¼º Áö¿ø¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "Corba/IIOP Ŭ¶óÀ̾ðÆ®¸¦ Áö¿øÇϵµ·Ï ¼¹ö ±¸¼º"À» ÂüÁ¶ÇϽʽÿÀ.
JNDI ¿¬°á ÆÑÅ丮
J2EE À¥ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ °æ¿ì web.xml ÆÄÀÏÀÇ ¹èÆ÷ ¼³¸íÀÚ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ȯ°æ Ç׸ñ, ÀÚ¿ø °ü¸®ÀÚ(¿¹: SQL µ¥ÀÌÅÍ ¼Ò½º) ¿¬°á ÆÑÅ丮 ¶Ç´Â EJB¿¡ ´ëÇÑ ÂüÁ¶¸¦ Á¤ÀÇÇϱâ À§ÇÑ ÀÚ¸® Ç¥½ÃÀÚÀÔ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥Àº J2EE ÄÁÅ×À̳ʰ¡ Á¦°øÇÏ´Â JNDI InitialNamingContext¸¦ »ç¿ëÇÏ¿© ÀÌ·¯ÇÑ ÂüÁ¶¸¦ Á¶È¸ÇÕ´Ï´Ù. µû¶ó¼ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¼Ò½º Äڵ带 ¾×¼¼½ºÇϰųª ¼öÁ¤ÇÏÁö ¾Ê°í ¹èÆ÷ ¼³¸íÀÚ¸¸ º¯°æÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥À» ´Ù¾çÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ ¼¹ö ȯ°æ¿¡ À̽ÄÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¶Âù°¡Áö·Î J2EE´Â Entity Bean (ejb-jar.xml)°ú IIOP ÀÀ¿ë ÇÁ·Î±×·¥ Ŭ¶óÀ̾ðÆ®(application-client.xml)ÀÇ ¹èÆ÷ ¼³¸íÀÚ¸¦ ÀÌ·¯ÇÑ JNDI À̸§ ÁöÁ¤ ÂüÁ¶¸¦ À§ÇÑ ÁÖ¿ä ¹æ¹ýÀ¸·Î »ç¿ëÇÕ´Ï´Ù.
¿¬°á ÆÑÅ丮´Â J2EE ±¸¼º ¿ä¼Ò°¡ ÀÚ¿ø¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â ¿¬°á °´Ã¼¸¦ ¸¸µå´Â °´Ã¼ÀÔ´Ï´Ù. µ¥ÀÌÅͺ£À̽ºÀÇ ¿¬°á ÆÑÅ丮´Â javax.sql.DataSource °´Ã¼À̸ç ÀÌ °´Ã¼´Â java.sql.Connection °´Ã¼¸¦ ¸¸µì´Ï´Ù.
Sun ONE Application Server¿¡¼ ´ÙÀ½ ÀÚ¿ø ¹× ÀÚ¿ø ÆÑÅ丮¿¡ ¾×¼¼½ºÇϱâ À§ÇÑ ¹æ¹ýÀ» ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
- JDBC ¿¬°á ÆÑÅ丮
- MQ¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â JMS ¿¬°á ÆÑÅ丮
- JavaMail ¼¼¼Ç ¿¬°á ÆÑÅ丮
- JCA Ä¿³ØÅÍ ÆÑÅ丮
- ÀϹÝ, »ç¿ëÀÚ Á¤ÀÇ »ç¿ëÀÚ ÀÛ¼º ÀÚ¿ø °´Ã¼ ÆÑÅ丮
- LDAP¿Í °°Àº ¿ÜºÎ ÀÚ¿ø ¸®Æ÷ÁöÅ丮¿¡ ´ëÇÑ Áö¿ø
¸ðµç Sun ONE Application Server ÀÚ¿ø ÆÑÅ丮´Â server.xmlÀÇ <resources> </resources> ÅÂ±× ¾È¿¡ ÁöÁ¤µÇ¾î ÀÖÀ¸¸ç jndi-name ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ÁöÁ¤ÇÑ JNDI À̸§À» °®½À´Ï´Ù. ÀÌ ¼Ó¼ºÀº ¼¹ö Â÷¿øÀÇ À̸§ °ø°£¿¡¼ ÆÑÅ丮¸¦ µî·ÏÇÒ ¶§ »ç¿ëµË´Ï´Ù. ¹èÆ÷ÀÚ´Â resource-ref-mapping ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ ÁöÁ¤, ÀÀ¿ë ÇÁ·Î±×·¥º° ÀÚ¿ø ÂüÁ¶ À̸§(resource-ref ¶Ç´Â resource-env-ref ¿ä¼Ò ³»¿¡ ¼±¾ðµÊ)À» ¼¹ö Â÷¿øÀÇ ÀÚ¿ø ÆÑÅ丮¿¡ ¸ÅÇÎÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼ ÁÖ¾îÁø ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇØ ¾î¶² JDBC µå¶óÀ̹ö ¹× ±âŸ ÀÚ¿ø ÆÑÅ丮¸¦ »ç¿ëÇÒÁö¿Í °ü·ÃÇÏ¿© ¹èÆ÷ ½Ã°£À» °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ç¿ëÀÚ Á¤ÀÇ ÀÚ¿øÀº ·ÎÄà JNDI ¸®Æ÷ÁöÅ丮¿¡ ¾×¼¼½ºÇÏ°í ¿ÜºÎ ÀÚ¿øÀº ¿ÜºÎ JNDI ¸®Æ÷ÁöÅ丮¿¡ ¾×¼¼½ºÇÕ´Ï´Ù. µÎ °¡Áö À¯ÇüÀÇ ÀÚ¿ø ¸ðµÎ »ç¿ëÀÚ ÁöÁ¤ ÆÑÅ丮 Ŭ·¡½º ¿ä¼Ò, JNDI À̸§ ¼Ó¼º µîÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ÀÌ Àý¿¡¼´Â J2EE ÀÚ¿ø¿¡ ´ëÇØ JNDI ¿¬°á ÆÑÅ丮 ÀÚ¿øÀ» ±¸¼ºÇÏ´Â ¹æ¹ý°ú ÀÌ·¯ÇÑ ÀÚ¿øÀ» ¾×¼¼½ºÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
ÀÌ ÀýÀº ´ÙÀ½ ³»¿ëÀ¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
- »ç¿ëÀÚ Á¤ÀÇ ÀÚ¿ø ¸¸µé±â
- ¿ÜºÎ JNDI ÀÚ¿ø ¸¸µé±â
- ¿ÜºÎ JNDI ¸®Æ÷ÁöÅ丮 ¾×¼¼½º
- ÀÀ¿ë ÇÁ·Î±×·¥ ÀÚ¿ø ÂüÁ¶ ¸ÅÇÎ
- URL ¿¬°á ÆÑÅ丮 ÀÚ¿ø Á¤º¸
- ÀÀ¿ë ÇÁ·Î±×·¥ ÀÚ¿ø ȯ°æ ÂüÁ¶ ¸ÅÇÎ
- EJB ÂüÁ¶ ¸ÅÇÎ
»ç¿ëÀÚ Á¤ÀÇ ÀÚ¿ø ¸¸µé±â
server.xml¿¡ Á¤ÀǵǾî ÀÖ´Â custom-resource ¿ä¼Ò´Â »ç¿ëÀÚ Á¤ÀÇ ¼¹ö Â÷¿øÀÇ ÀÚ¿ø °´Ã¼ ÆÑÅ丮¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °´Ã¼ ÆÑÅ丮´Â javax.naming.spi.ObjectFactory ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù. ÀÌ ¿ä¼Ò´Â JNDI À̸§(´Ù¸¥ Sun ONE Application Server ÀÚ¿ø °°Àº jndi-name ÇÏÀ§ ¿ä¼Ò¸¦ ÅëÇØ ÁöÁ¤)À» ¿¬°áÇÏ¿© ¼¹ö Â÷¿ø À̸§ °ø°£, À¯Çü, ÀÚ¿ø ÆÑÅ丮 Ŭ·¡½ºÀÇ À̸§ ¹× °°Àº ³»¿ëÀ» ÀνºÅϽºÈÇÏ´Â µ¥ »ç¿ëµÇ´Â Ç¥ÁØ µî·Ï Á¤º¸ ÁýÇÕ¿¡¼ »ç¿ëµÇµµ·Ï ÇÕ´Ï´Ù.
´ÙÀ½ ¿¹¿¡¼´Â javax.naming.spi.ObjectFactory ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀ» ¼³¸íÇÕ´Ï´Ù.
<resources> <custom-resource jndi-name="test/myBean"
res-type="test.MyBean"factory-class="test.MyBeanFactory"
enabled="true"><property name="foo" value="test custom bean prop" />
</custom-resource>
</resources>ÀÚ¿ø ÂüÁ¶ÀÇ È¯°æ ÂüÁ¶¿Í EJB ÂüÁ¶°¡ server.xmlÀÇ custom-resource¿Í external-jndi-resource ű׸¦ »ç¿ëÇÏ¿© Á¤ÀÇÇÑ ±¸¼º ¼¹ö Â÷¿ø ÀÚ¿ø¿¡ ¿¬°áµÇµµ·Ï ÇØ¾ß ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò¸¦ µ¿ÀûÀ¸·Î Àç¹èÆ÷ÇÏ´Â °ÍÀº JNDI À̸§ ÁöÁ¤ ȯ°æ°ú °ü·ÃµÈ
»õ·Î¿î ÂüÁ¶¸¦ »õ·Î ¼³Ä¡ÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ À̸§ ÁöÁ¤ ÄÁÅؽºÆ®¿¡ ´Ù½Ã ¹ÙÀεùÇÕ´Ï´Ù.
°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ Á¤ÀÇ ÀÚ¿øÀ» ¸¸µé·Á¸é ´ÙÀ½À» ¼öÇàÇÕ´Ï´Ù.
- °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿ÞÂÊ Ã¢¿¡¼ JNDI ±¸¼ºÀ» ¼öÁ¤ÇÒ Sun ONE Application Server ÀνºÅϽº¸¦ ¿±´Ï´Ù.
- "JNDI" ÅÇÀ» ¿°í "»ç¿ëÀÚ Á¤ÀÇ ÀÚ¿ø"À» ´©¸¨´Ï´Ù. »ç¿ëÀÚ Á¤ÀÇ ÀÚ¿øÀÌ ÀÌ¹Ì ¸¸µé¾îÁ® ÀÖÀ¸¸é ¿À¸¥ÂÊ Ã¢¿¡ ³ª¿µË´Ï´Ù. »õ »ç¿ëÀÚ Á¤ÀÇ ÀÚ¿øÀ» ¸¸µé·Á¸é "»õ·Î ¸¸µé±â"¸¦ ´©¸¨´Ï´Ù. °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿À¸¥ÂÊ Ã¢¿¡ "JNDI »ç¿ëÀÚ Á¤ÀÇ ÀÚ¿ø ÆäÀÌÁö"°¡ Ç¥½ÃµË´Ï´Ù.
   JNDI »ç¿ëÀÚ Á¤ÀÇ ÀÚ¿ø ÆäÀÌÁö
- ÀÚ¿øÀ» ¾×¼¼½ºÇÒ ¶§ »ç¿ëÇÒ À̸§À» "JNDI À̸§" Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù. ÀÌ À̸§Àº JNDI À̸§ ÁöÁ¤ ¼ºñ½º¿¡ µî·ÏµË´Ï´Ù.
- À§ÀÇ ¿¹¿¡¼¿Í °°ÀÌ "ÀÚ¿ø À¯Çü" Çʵ忡 Àüü À¯Çü Á¤ÀǸ¦ ÀÔ·ÂÇÕ´Ï´Ù. ÀÚ¿ø À¯Çü Á¤ÀÇ´Â xxx.xxx Çü½ÄÀ» µû¶ó¾ß ÇÕ´Ï´Ù.
- ¸¸µé°í ÀÖ´Â »ç¿ëÀÚ Á¤ÀÇ ÀÚ¿ø¿¡ ´ëÇÑ ÆÑÅ丮 Ŭ·¡½º À̸§À» "ÆÑÅ丮 Ŭ·¡½º" Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù. ÆÑÅ丮 Ŭ·¡½º´Â ÆÑÅ丮 Ŭ·¡½º¿¡ ´ëÇÑ »ç¿ëÀÚ ÁöÁ¤ À̸§ÀÔ´Ï´Ù. ÀÌ Å¬·¡½º´Â javax.naming.spi.ObjectFactory ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù.
- ¸¸µé°í ÀÖ´Â ÀÚ¿ø¿¡ ´ëÇÑ ¼³¸íÀ» "¼³¸í" Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù. ÀÌ ¼³¸íÀº ¹®ÀÚ¿ °ªÀ̹ǷΠÃÖ´ë 250ÀÚ±îÁö ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.
- »ç¿ëÀÚ Á¤ÀÇ ÀÚ¿øÀ» È°¼ºÈÇÏ·Á¸é "»ç¿ëÀÚ Á¤ÀÇ ÀÚ¿ø »ç¿ë" È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.
- »ç¿ëÀÚ Á¤ÀÇ ÀÚ¿øÀ» ÀúÀåÇÏ·Á¸é "È®ÀÎ"À» ´©¸¨´Ï´Ù.
¿ÜºÎ JNDI ÀÚ¿ø ¸¸µé±â
°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© ¿ÜºÎ ÀÚ¿øÀ» ¸¸µé·Á¸é ´ÙÀ½À» ¼öÇàÇÕ´Ï´Ù.
- °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿ÞÂÊ Ã¢¿¡¼ JNDI ±¸¼ºÀ» ¼öÁ¤ÇÒ Sun ONE Application Server ÀνºÅϽº¸¦ ¿±´Ï´Ù.
- JNDI¸¦ ¿°í "¿ÜºÎ ÀÚ¿ø"À» ¼±ÅÃÇÕ´Ï´Ù. ¿ÜºÎ ÀÚ¿øÀÌ ÀÌ¹Ì ¸¸µé¾îÁ® ÀÖÀ¸¸é ¿À¸¥ÂÊ Ã¢¿¡ ³ª¿µË´Ï´Ù. »õ ¿ÜºÎ ÀÚ¿øÀ» ¸¸µé·Á¸é "»õ·Î ¸¸µé±â"¸¦ ´©¸¨´Ï´Ù.
°ü¸® ÀÎÅÍÆäÀ̽º ¿À¸¥ÂÊ Ã¢¿¡ ±×¸² "JNDI ¿ÜºÎ ÀÚ¿ø ÆäÀÌÁö"¿¡¼¿Í °°ÀÌ ´ÙÀ½ âÀÌ Ç¥½ÃµÉ °ÍÀÔ´Ï´Ù.
   JNDI ¿ÜºÎ ÀÚ¿ø ÆäÀÌÁö
- ÀÚ¿øÀ» ¾×¼¼½ºÇÏ´Â µ¥ »ç¿ëÇÒ À̸§À» "JNDI À̸§" Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù. ÀÌ À̸§Àº JNDI À̸§ ÁöÁ¤ ¼ºñ½º¿¡ µî·ÏµË´Ï´Ù.
- À§ÀÇ ¿¹¿¡¼¿Í °°ÀÌ "ÀÚ¿ø À¯Çü" Çʵ忡 Àüü À¯Çü Á¤ÀǸ¦ ÀÔ·ÂÇÕ´Ï´Ù. ÀÚ¿ø À¯Çü Á¤ÀÇ´Â xxx.xxx Çü½ÄÀ» µû¶ó¾ß ÇÕ´Ï´Ù.
- ¿ÜºÎ ¸®Æ÷ÁöÅ丮¿¡¼ Á¶È¸ÇÒ JNDI °ªÀ» "JNDI Á¶È¸" Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Bean Ŭ·¡½º¸¦ Å×½ºÆ®Çϱâ À§ÇØ ¿ÜºÎ ÀÚ¿øÀ» ¸¸µé¾î ¿ÜºÎ ¸®Æ÷ÁöÅ丮¿¡ ¿¬°áÇÏ´Â °æ¿ì JNDI Á¶È¸´Â cn=testmybeanÀ» ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù.
- com.sun.jndi.ldap¿Í °°Àº JNDI ÆÑÅ丮 Ŭ·¡½º ¿ÜºÎ ¸®Æ÷ÁöÅ丮¸¦ "ÆÑÅ丮 Ŭ·¡½º" Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â javax.naming.spi.ObjectFactory ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù.
- ¸¸µé°í ÀÖ´Â ÀÚ¿ø¿¡ ´ëÇÑ ¼³¸íÀ» "¼³¸í" Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù. ÀÌ ¼³¸íÀº ¹®ÀÚ¿ °ªÀ̹ǷΠÃÖ´ë 250ÀÚ±îÁö ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.
- ¿ÜºÎ ÀÚ¿øÀ» È°¼ºÈÇÏ·Á¸é "¿ÜºÎ ÀÚ¿ø »ç¿ë" È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.
- »ç¿ëÀÚ Á¤ÀÇ ÀÚ¿øÀ» ÀúÀåÇÏ·Á¸é "È®ÀÎ"À» ´©¸¨´Ï´Ù.
¿ÜºÎ JNDI ¸®Æ÷ÁöÅ丮 ¾×¼¼½º
Sun ONE Application Server¿¡¼ ½ÇÇàµÇ´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ °æ¿ì ¿ÜºÎ JNDI ¸®Æ÷ÁöÅ丮¿¡ ÀúÀåµÈ ÀÚ¿ø¿¡ ¾×¼¼½ºÇØ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, LDAP ¼¹ö¿¡ ÀÏ¹Ý Java °´Ã¼¸¦ Java ½ºÅ°¸¶º°·Î ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ´Â ¿ÜºÎ JNDI ÀÚ¿ø ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© ÀÌ·¯ÇÑ ¿ÜºÎ ÀÚ¿ø ¸®Æ÷ÁöÅ丮¸¦ ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿ÜºÎ JNDI ÆÑÅ丮´Â javax.naming.spi.InitialContextFactory ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.
¿¹:
<resources>
<!-- external-jndi-resource element specifies how to access J2EE resources
-- stored in an external JNDI repository. The following example
-- illustrates how to access a java object stored in LDAP.
-- factory-class element specifies the JNDI InitialContext factory that
-- needs to be used to access the resource factory. property element
-- corresponds to the environment applicable to the external JNDI context
-- and jndi-lookup-name refers to the JNDI name to lookup to fetch the
-- designated (in this case the java) object.
-->
<external-jndi-resource jndi-name="test/myBean"
jndi-lookup-name="cn=myBean"
res-type="test.myBean"
factory-class="com.sun.jndi.ldap.LdapCtxFactory"><property name="PROVIDER-URL" value="ldap://ldapserver:389/o=myObjects" />
<property name="SECURITY_AUTHENTICATION" value="simple" />
<property name="SECURITY_PRINCIPAL", value="cn=joeSmith, o=Engineering" />
<property name="SECURITY_CREDENTIALS" value="changeit" />
</external-jndi-resource>
</resources>ÀÀ¿ë ÇÁ·Î±×·¥ ÀÚ¿ø ÂüÁ¶ ¸ÅÇÎ
ÀÀ¿ë ÇÁ·Î±×·¥ °ü·Ã ÀÚ¿ø ÂüÁ¶´Â ¹Ì¸® Á¤ÀÇµÈ ¼¹ö Â÷¿ø ÀÚ¿ø ÆÑÅ丮¿¡ ¸ÅÇÎÇØ¾ß ÇÕ´Ï´Ù. À̶§ Sun ONE Application Server °ü·Ã ÀÚ¿ø ÂüÁ¶ ¸ÅÇÎ ¿ä¼Ò¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ ¿¹¿¡¼´Â ÀÚ¿ø ÂüÁ¶°¡ JDBC µ¥ÀÌÅÍ ¼Ò½º¿¡ ÁöÁ¤µÇ¾î ÀÖ´Â À¥ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¹èÆ÷ ¼³¸íÀÚÀÎ web.xmlÀ» »ìÆ캼 °ÍÀÔ´Ï´Ù.
<resource-ref>
<res-ref-name> jdbc/EstoreDataSource </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>¿øÇÏ´Â res-ref-nameÀ» ´ÙÀ½°ú °°ÀÌ ÄÁÅ×ÀÌ³Ê Â÷¿ø Orcale JDBC ¿¬°á ÀÚ¿ø ÆÑÅ丮¿¡ ¸ÅÇÎÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
<resource-ref>
<res-ref-name> jdbc/EstoreDataSource </resource-ref-name>
<jndi-name> jdbc/estore/InventoryDB </jndi-name>
</resource-ref>URL ¿¬°á ÆÑÅ丮 ÀÚ¿ø Á¤º¸
URL ¿¬°á ÆÑÅ丮ÀÇ °æ¿ì server.xml¿¡ Á¤ÀǵǾî ÀÖ´Â ÀÚ¿øÀÌ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ÇØ´ç Sun ONE Application Server ÀÀ¿ë ÇÁ·Î±×·¥(À¥ ¶Ç´Â ejb) ¹èÆ÷ ¼³¸íÀÚÀÇ jndi-name ¿ä¼Ò°¡ ´ë»ó URLÀ» ÁöÁ¤ÇÕ´Ï´Ù.
¿¹¸¦ µé¾î, À¥ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¹èÆ÷ ¼³¸íÀÚ web.xmlÀÌ java.net.URL ÀÚ¿ø ÂüÁ¶¸¦ ÁöÁ¤ÇÏ°í sun-web.xml¿¡ ÀÖ´Â URL http://www.sun.com/index.html¿¡ ¸ÅÇÎµÈ´Ù°í °¡Á¤ÇÕ´Ï´Ù.
¸ÅÇÎÀº ´ÙÀ½°ú °°À» °ÍÀÔ´Ï´Ù.
<resource-ref>
<res-ref-name>myURL</res-ref-name>
<res-type>java.net.URL</res-type>
<res-auth>Container</res-auth>
</resource-ref><sun-web-app>
<resource-ref>
<res-ref-name>myURL</res-ref-name>
<jndi-name> http://www.sun.com/index.html </jndi-name>
</resource-ref>
</sun-web-app>ÀÀ¿ë ÇÁ·Î±×·¥ ÀÚ¿ø ȯ°æ ÂüÁ¶ ¸ÅÇÎ
ÀÀ¿ë ÇÁ·Î±×·¥ °ü·Ã ÀÚ¿ø ȯ°æ ÂüÁ¶ ¼±¾ðÀº ÀÀ¿ë ÇÁ·Î±×·¥ ¼¹öÀÇ ·±Å¸ÀÓ È¯°æ¿¡¼ »ç¿ë °¡´ÉÇÑ ´ë»ó ÀÚ¿ø °´Ã¼¿¡ ¸ÅÇεǾî¾ß ÇÕ´Ï´Ù. Sun ONE Application Server °ü·Ã ±¸¼º ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖ´Â ÀÚ¿ø ȯ°æ ¸ÅÇÎ ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© ¹èÆ÷ÀÚ´Â ´ÙÀ½°ú °°ÀÌ ¸ÅÇÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¹:
<resource-env-ref>
<description> My Topic </description>
<res-env-ref-name> jms/MyTopic </res-ref-name>
<res-env-ref-type> javax.jms.Topic </res-type>
</resource-env-ref>ÀÌ ÂüÁ¶´Â server.xml¿¡ Á¤ÀǵǾî ÀÖ´Â jms/iMQ/Topics/Stocks/SUNW Ç׸ñ¿¡ ¸ÅÇε˴ϴÙ. ÀÚ¼¼ÇÑ ³»¿ëÀº Sun ONE Application Server Administrator's Configuration File Reference¸¦ ÂüÁ¶ÇϽʽÿÀ.
<resource-env-ref-mapping>
<res-env-ref-name> jms/MyTopic </res-ref-name>
<jndi-name> jms/iMQ/Topics/Stocks/SUNW </jndi-name>
</resource-env-ref-mapping>EJB ÂüÁ¶ ¸ÅÇÎ
´ë»ó Enterprise Bean¿¡ »ç¿ëµÈ ejb-name¿¡¼ ÀÀ¿ë ÇÁ·Î±×·¥ Äڵ忡 »ç¿ëµÈ ½ÇÁ¦ ejb-nameÀ» ºÐ¸®ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. À¥ ÀÀ¿ë ÇÁ·Î±×·¥ ¹èÆ÷ ¼³¸íÀÚ, web.xmlÀ» ¼öÁ¤ÇÏÁö ¾Ê°í Enterprise Bean ¹èÆ÷ ¼³¸íÀÚÀÇ ejb-nameÀ» »ç¿ëÇÏ·Á°í ÇÒ ¶§ ÀÌ ¹æ¹ýÀÌ Æ¯È÷ À¯¿ëÇÕ´Ï´Ù. Sun ONE Application Server °ü·Ã ±¸¼ºÀ» »ç¿ëÇϸé Sun ONE Application Server °ü·Ã ¹èÆ÷ ¼³¸íÀÚÀÇ ejb-ref-mapping ¿ä¼Ò¸¦ »ç¿ëÇÏÁö ¾Ê°í ejb-ref-name ¿ä¼Ò¸¦ ´ë»ó BeanÀÇ ejb-name¿¡ ¸ÅÇÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¹:
<ejb-ref>
<ejb-ref-name> ejb/EmplRecord </ejb-ref-name>
<ejb-ref-type> Entity </ejb-ref-type>
<home> com.wombat.empl.EmployeeRecordHome </home>
<remote> com.wombat.empl.EmployeeRecord </remote>
</ejb-ref><ejb-ref>
<ejb-ref-name> ejb/EmplRecord </ejb-ref-name>
<jndi-name> AccountEJB </jndi-name>
</ejb-ref-mapping>Áö¼Ó¼º °ü¸®ÀÚ ÀÚ¿ø Á¤º¸
ÀÌ ¸ðµâ¿¡¼´Â Áö¼Ó¼º¿¡ ´ëÇØ ¼³¸íÇÏ°í Sun ONE Application Server¿¡¼ Áö¿øÇÏ´Â Ç÷¯±×Çü Áö¼Ó¼º °ü¸®ÀÚ »ç¿ëÀ» À§ÇÑ ÇÁ·¹ÀÓ¿öÅ©¸¦ ¼³Á¤ÇÕ´Ï´Ù.
ÀÌ ¸ðµâ¿¡¼´Â ´ÙÀ½ ³»¿ëÀ» ¼³¸íÇÕ´Ï´Ù.
Áö¼Ó¼ºÀ̶õ?
´ëºÎºÐÀÇ ºñÁî´Ï½º ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÁÖ¿ä Ãø¸éÀº Áö¼Ó¼º µ¥ÀÌÅÍ(ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¿ÜºÎ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ¿À·¡µÈ µ¥ÀÌÅÍ)¸¦ ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀ¸·Î Á¶ÀÛÇÏ´Â °ÍÀÔ´Ï´Ù. Áö¼Ó¼º µ¥ÀÌÅ͸¦ »ç¿ëÇϰųª ¼öÁ¤ÇÏ·Á°í ÇÒ ¶§´Â Àӽà ¸Þ¸ð¸®·Î ÀоîµéÀÌÁö¸¸ ¿À·§ µ¿¾È ÀúÀåÇϱâ À§Çؼ´Â °ü°èÇü µ¥ÀÌÅͺ£À̽º³ª Ç÷§ ÆÄÀÏ ½Ã½ºÅÛ¿¡ ±â·ÏÇÕ´Ï´Ù.
°´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛ¿¡¼ Áö¼Ó¼º µ¥ÀÌÅÍ´Â ÀÀ¿ë ÇÁ·Î±×·¥ Äڵ忡 ÀÇÇØ Á¶À۵Ǵ Çϳª ÀÌ»óÀÇ µ¥ÀÌÅÍ °´Ã¼·Î ¸Þ¸ð¸®¿¡ Ç¥ÇöµË´Ï´Ù. ÀϹÝÀûÀ¸·Î µ¥ÀÌÅÍ ÀúÀå¼ÒÀÇ Áö¼Ó¼º µ¥ÀÌÅÍ¿Í ¸Þ¸ð¸®¿¡ Ç¥ÇöµÈ Áö¼Ó¼º µ¥ÀÌÅÍ °´Ã¼ °£ÀÇ ´ëÀÀÀº ´ÙÀ½ ±×¸² ±âº» Áö¼Ó¼º ü°è¿¡ Ç¥½ÃµÈ ´ë·Î ¸¹Àº ¼ÒÇÁÆ®¿þ¾î °èÃþÀ» ÅëÇØ ÀÌ·ç¾îÁý´Ï´Ù.
   ±âº» Áö¼Ó¼º ü°è
°¢ µ¥ÀÌÅÍ ÀúÀå¼Ò¿¡´Â µ¥ÀÌÅÍ ÀúÀå¼Ò¿Í ÀÀ¿ë ÇÁ·Î±×·¥ °£ÀÇ ¿¬°áÀ» ¼³Á¤ÇÏ°í À¯ÁöÇÏ´Â µ¥ »ç¿ëµÇ´Â µå¶óÀ̹ö ¼ÒÇÁÆ®¿þ¾î¸¦ ÅëÇØ ¿ÜºÎ ¿µ¿ª°ú ¿¬°áµÇ´Â ÀÎÅÍÆäÀ̽º°¡ ÀÖ½À´Ï´Ù. ÀÌ ¿¬°áÀÌ ¼³Á¤µÇ¸é ÁúÀǾ »ç¿ëÇÏ¿© µ¥ÀÌÅÍ ÀúÀå¼Ò·ÎºÎÅÍ Á¤º¸¸¦ °Ë»öÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥À¸·Î ÀоîµéÀ̰ųª ¹Ý´ë·Î ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ µ¥ÀÌÅÍ ÀúÀå¼Ò·Î µ¥ÀÌÅ͸¦ ±â·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ °èÃþÀº ¸Þ¸ð¸®ÀÇ µ¥ÀÌÅÍ °´Ã¼¿Í µ¥ÀÌÅÍ ÀúÀå¼ÒÀÇ Á¤º¸ °£ÀÇ ¸ÅÇÎÀ» Á¦°øÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ ÀÏ¹Ý Ã¼°è¸¦ ÅëÇØ ÇÁ·Î±×·¡¸Ó´Â Áö¼Ó¼º µ¥ÀÌÅ͸¦ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ »ç¿ëÇÏ°í Á¶ÀÛÇÒ ¼ö ÀÖ´Â ·±Å¸ÀÓ °´Ã¼·Î Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Ã¼°è´Â CRUD·Î Ãà¾àµÇ±âµµ ÇÏ´Â ¸ðµç ±âº» Áö¼Ó¼º ÀÛ¾÷À» Áö¿øÇÕ´Ï´Ù.
- C - Áö¼Ó¼º µ¥ÀÌÅÍ ¸¸µé±â(µ¥ÀÌÅÍ ÀúÀå¼Ò¿¡ »ðÀÔ)
- R - Áö¼Ó¼º µ¥ÀÌÅÍ °Ë»ö(µ¥ÀÌÅÍ ÀúÀå¼Ò¿¡¼ ¼±ÅÃ)
- U - Áö¼Ó¼º µ¥ÀÌÅÍ ¾÷µ¥ÀÌÆ®
- D - Áö¼Ó¼º µ¥ÀÌÅÍ »èÁ¦
Áö¼Ó¼º °ü¸®ÀÚÀÇ ¿ªÇÒ
Áö¼Ó¼º °ü¸®ÀÚ(PM)´Â EJB ÄÁÅ×À̳ʿ¡¼ ÄÁÅ×ÀÌ³Ê °ü¸® Áö¼Ó¼º°ú ÇÔ²² Entity BeanÀÇ Áö¼Ó¼ºÀ» °ü¸®ÇÕ´Ï´Ù. Entity Bean °ø±ÞÀÚ´Â Entity Bean Ŭ·¡½º¸¦ Ãß»ó Ŭ·¡½º·Î Á¦°øÇØ¾ß ÇÕ´Ï´Ù. Áö¼Ó¼º °ü¸®ÀÚ °ø±ÞÀÚÀÇ µµ±¸¸¦ ÅëÇØ À̸¦ ±¸Ã¼ÀûÀ¸·Î ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷À» ¼öÇàÇÏ·Á¸é Ãß»ó Entity Bean°ú °ü·Ã Ŭ·¡½º¸¦ ÇÏÀ§ Ŭ·¡½º·Î ³ª´« ´ÙÀ½ À̸¦ ±¸Ã¼ÀûÀ¸·Î ±¸ÇöÇϰųª ĸ½¶È¿Í À§ÀÓÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Áö¼Ó¼º °ü¸®ÀÚ µµ±¸°¡ Á¦°øÇϴ Ŭ·¡½º´Â Entity Bean »çÀÌÀÇ °ü°è¸¦ °ü¸®ÇÏ°í Áö¼Ó¼º »óÅ¿¡ ´ëÇÑ ¾×¼¼½º¸¦ °ü¸®ÇÒ Ã¥ÀÓÀÌ ÀÖ½À´Ï´Ù. PM µµ±¸´Â ÄÁÅ×ÀÌ³Ê °ü¸® Áö¼Ó¼º(CMR)À» À¯ÁöÇÏ´Â µ¥ »ç¿ëµÇ´Â java.util.Collection Ŭ·¡½º ±¸ÇöÀ» Á¦°øÇÒ Ã¥ÀÓµµ ÀÖ½À´Ï´Ù.
»çÀü ¹èÆ÷ Bean ±¸¼º
Enterprise Java Bean Ç¥ÁØÀº Entity Bean¿¡ ´ëÇÑ µÎ °¡Áö Áö¼Ó¼º, ÄÁÅ×ÀÌ³Ê °ü¸® Áö¼Ó¼º(CMP)°ú Bean °ü¸® Áö¼Ó¼º(BMP)À» Á¦°øÇÕ´Ï´Ù. EJB 2.0 »ç¾çÀº EJB ¼¹ö¿Í Áö¼Ó¼º °ü¸®ÀÚ »çÀÌÀÇ Ç¥ÁØ API¸¦ Á¤ÀÇÇÏÁö ¾Ê½À´Ï´Ù.
ÀÌ Àý¿¡¼´Â ¹èÆ÷ ¹× ÄÚµå »ý¼º ½ÃÀÇ ÅëÇÕ ¿ä±¸ »çÇ×À» ¼³¸íÇÕ´Ï´Ù. ¹èÆ÷¶ó´Â ¿ë¾î´Â ¿©·¯ Àǹ̷Π»ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ¹èÆ÷ °úÁ¤¿¡´Â ±¸¼º, ÄÚµå »ý¼º, ¼³Ä¡¶ó´Â ¼¼ °¡Áö ¶Ñ·ÇÇÑ ´Ü°è°¡ Æ÷ÇԵȴٰí ÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ç¿ëµÈ Áö¼Ó¼º ¸ÞÄ¿´ÏÁò, Áö¼Ó¼º °ø±Þ¾÷ü, »ç¿ë ÁßÀÎ ¹öÀü, Áö¼Ó¼º ¸ÞÄ¿´ÏÁò¿¡ ÇÊ¿äÇÑ Ãß°¡ Á¤º¸ µîÀ» ºñ·ÔÇÏ¿© Bean¿¡ ´ëÇØ ¸¹Àº µî·Ï Á¤º¸¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ Áö¼Ó¼º °ø±Þ¾÷ü´Â ¸ðµç °ü·Ã Bean°ú ±× Á¾¼Ó Ŭ·¡½º¸¦ ´ÜÀÏ ´ÜÀ§·Î ¹èÆ÷ÇÒ ¼ö ÀÖ´Â ÇÁ·ÎÁ§Æ®ÀÇ °³³äÀ» °®°í ÀÖ½À´Ï´Ù. ÇÁ·ÎÁ§Æ®º°·Î °ø±Þ¾÷ü °ü·Ã xml ÆÄÀÏÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.
¹èÆ÷ ¸ñÀûÀ¸·Î Áö¿øµÇ´Â ¼¼ °¡Áö Ç¥ÁØ ÆÄÀÏ¿¡´Â ejb-jar.xml, sun-ejb-jar.xml ¹× sun-cmp-mappings.xmlÀÌ Æ÷ÇԵ˴ϴÙ. sun-ejb-jar.xml¿¡ CMP Bean°ú ÇÔ²² ÀÖ´Â °¢ EJB ¸ðµâ¿¡´Â ´Ù¼¸ °³ ÀÌ»óÀÇ ¼Ó¼ºÀ» ÁöÁ¤ÇÏ´Â ÇÑ °³ ÀÌ»óÀÇ <pm-descriptor> ¿ä¼Ò¿Í ÇÔ²² <pm-descriptors>°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ´Ù¼¸ °¡Áö ¼Ó¼ºÀº pm-identifier, pm-version, pm-config, pm-class-generator, pm-mapping-factoryÀÔ´Ï´Ù.
Sun ONE Application Server °ü·Ã ¼³¸íÀÚ(sunEjb_jar_2_0.DTD¿¡¼¿Í ¸¶Âù°¡Áö)´Â Áö¼Ó¼º °ü¸®ÀÚ °ü·Ã ű׸¦ Á¤ÀÇÇÕ´Ï´Ù. »ùÇà CMP ¼³¸íÀÚ´Â Sun ONE Application Server DTD¿¡ Á¤ÀÇµÈ °Íó·³ ¾Æ·¡¿Í ºñ½ÁÇÒ °ÍÀÔ´Ï´Ù.
PM descriptors contain one or more pm descriptors, but only of them must be in use at any given time
-->
<!ELEMENT pm-descriptors ( pm-descriptor+, pm-inuse)>
<!--
pm-descriptor describes the properties for the persistence manager
associated with entity bean
-->
<!ELEMENT pm-descriptor ( pm-identifier, pm-version, pm-config?, pm-class-generator?,
pm-mapping-factory?)>
<!--
ÀÌ ¿ä¼Ò´Â PM ±¸ÇöÀ» Á¦°øÇÑ °ø±Þ¾÷ü¸¦ ¼³¸íÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Sun ONE Application Server Transparent Persistence, TopLink, Versant ¶Ç´Â CocoBase°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
-->
<!ELEMENT pm-identifier (#PCDATA)>
<!--
pm-version further specifies which version of PM vendor product to be used
-->
<!ELEMENT pm-version (#PCDATA)>
<!--
pm-config specifies the vendor specific config file to be used
-->
<!ELEMENT pm-config (#PCDATA)>
<!--
pm-class-generator specifies the vendor specific concrete class generator
This is the name of the class specific to a vendor:
-->
<!ELEMENT pm-class-generator (#PCDATA)>
<!--
pm-mapping-factory specifies the vendor specific mapping factory
This is the name of the class specific to a vendor:
-->
<!ELEMENT pm-mapping-factory (#PCDATA)>
»õ Áö¼Ó¼º °ü¸®ÀÚ ¸¸µé±â
°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© »õ Áö¼Ó¼º °ü¸®ÀÚ ÀνºÅϽº¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù. »õ Áö¼Ó¼º °ü¸®ÀÚ ÀνºÅϽº¸¦ ¸¸µé·Á¸é ´ÙÀ½À» ¼öÇàÇÕ´Ï´Ù.
- °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿ÞÂÊ Ã¢¿¡¼ »õ Áö¼Ó¼º °ü¸®ÀÚ¸¦ ¸¸µé Sun ONE Application Server ÀνºÅϽº¸¦ ¿±´Ï´Ù. Ç¥½ÃµÈ ¼¹ö ±¸¼º ¿ä¼Ò ¸ñ·Ï¿¡¼ "Áö¼Ó¼º °ü¸®ÀÚ"¸¦ ´©¸¨´Ï´Ù.
Sun ONE Application ServerÀÇ ÇØ´ç ÀνºÅϽº¿¡ ´ëÇØ Áö¼Ó¼º °ü¸®ÀÚ°¡ ¸¸µé¾îÁ® ÀÖÀ¸¸é °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿À¸¥ÂÊ Ã¢¿¡ ¸ñ·ÏÀÌ Ç¥½ÃµÉ °ÍÀÔ´Ï´Ù.
- »õ Áö¼Ó¼º °ü¸®ÀÚ¸¦ ¸¸µé·Á¸é "»õ·Î ¸¸µé±â"¸¦ ´©¸¨´Ï´Ù. ±×¸² "»õ Áö¼Ó¼º °ü¸®ÀÚ ¸¸µé±â" ¿¡ Ç¥½ÃµÈ ´ÙÀ½ âÀÌ Ç¥½ÃµÉ °ÍÀÔ´Ï´Ù.
  
»õ Áö¼Ó¼º °ü¸®ÀÚ ¸¸µé±â
- ÀÀ¿ë ÇÁ·Î±×·¥À» ´ë½ÅÇÏ¿© ƯÁ¤ Áö¼Ó¼º °ü¸®ÀÚ¸¦ ã±â À§ÇØ ÀÀ¿ë ÇÁ·Î±×·¥ ¼¹ö°¡ ·±Å¸ÀÓ¿¡ »ç¿ëÇÏ´Â JNDI À̸§ÀÔ´Ï´Ù. ÀÌ À̸§Àº Sun °ü·Ã ¹èÆ÷ ¼³¸íÀÚÀÇ Entity Bean cmp ÀÚ¿ø ¿ä¼Ò¿¡ Á¤ÀÇµÈ °Í°ú °°¾Æ¾ß ÇÕ´Ï´Ù.
- "¼³¸í" Çʵ忡 »õ Áö¼Ó¼º °ü¸®ÀÚ¿¡ ´ëÇÑ ¼³¸íÀ» ÀÔ·ÂÇÕ´Ï´Ù. ÀÌ ÇʵåÀÇ °ªÀº ¹®ÀÚ¿À̹ǷΠ250ÀÚ±îÁö ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.
- Áö¼Ó¼º °ü¸®ÀÚÀÇ ÆÑÅ丮 Ŭ·¡½º ¿¬°áÀ» "ÆÑÅ丮 Ŭ·¡½º" Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù. setEntityContext´Â JNDI À̸§ Á¶È¸¸¦ ÅëÇØ ÀÌ ¿¬°á ÆÑÅ丮¸¦ Á¶È¸ÇÕ´Ï´Ù. ÆÑÅ丮 Ŭ·¡½º À̸§Àº Áö¼Ó¼º °ü¸®ÀÚ ÀνºÅϽº¸¦ ¸¸µå´Â Áö¼Ó¼º °ü¸®ÀÚ ÆÑÅ丮ÀÇ Å¬·¡½º À̸§ÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î ÀÌ À̸§Àº Sun ONE Application ServerÀÇ ³»ºÎ Áö¼Ó¼º °ü¸®ÀÚ ÆÑÅ丮 Ŭ·¡½º·Î ¼³Á¤µË´Ï´Ù. ´ëü ±¸ÇöÀ» »ç¿ëÇÏ´Â °æ¿ì ÀÌ Å¬·¡½º¸¦ ¼¹ö Ŭ·¡½º °æ·Î¿¡¼ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÕ´Ï´Ù.
- "¿¬°á Ç®" µå·Ó´Ù¿î ¸ñ·Ï¿¡¼ »õ Áö¼Ó¼º °ü¸®ÀÚ¸¦ Ç®¸µÇÒ µ¥ÀÌÅͺ£À̽º ¿¬°á Ç®À» ¼±ÅÃÇÕ´Ï´Ù. ¿¬°á Ç®¸µÀ» »ç¿ëÇϸé Entity BeanÀº ´ÜÀÏ ¿¬°áÀ» ¿äûÇÏ°í À̸¦ »ç¿ëÇÏ¿© ¿©·¯ Ŭ¶óÀ̾ðÆ® ½º·¹µå¿¡ ´ëÇØ ¸í·É¹®À» µ¿½Ã¿¡ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ µ¥ÀÌÅͺ£À̽º ¾×¼¼½º¿Í ¸¶Âù°¡Áö·Î Áö¼Ó¼º °ü¸®ÀÚ´Â ¿¬°á Ç®¸µÀ» »ç¿ëÇÏ¿© ¼º´É ¹× È®À强À» Çâ»ó½Ãŵ´Ï´Ù. ±âÁ¸ ¿¬°á Ç®À» ¼±ÅÃÇϰųª, ¾ÆÁ÷ ¸¸µé¾îÁø Ç®ÀÌ ¾ø´Â °æ¿ì "¼±ÅÃµÈ ´ë»óÀÌ ¾ø½À´Ï´Ù."¸¦ ¼±ÅÃÇÕ´Ï´Ù.
ÁÖ: JDBC ÀÚ¿øÀÌ ÀÚµ¿À¸·Î ¸¸µé¾îÁ® PM ·±Å¸ÀÓÀÌ JNDI¸¦ »ç¿ëÇÏ¿© ¿¬°á Ç®¿¡ ¹ÙÀεùÇÏ°Ô ÇØÁÝ´Ï´Ù. JDBC ÀÚ¿øÀÇ JNDI À̸§Àº "PM"À̶õ Á¢µÎ¾î¸¦ °®´Â PM JNDI À̸§°ú °°À» °ÍÀÔ´Ï´Ù. Áö¼Ó¼º °ü¸®ÀÚ¸¦ »èÁ¦ÇÏ¸é °ü·Ã JDBC ÀÚ¿øµµ »èÁ¦µË´Ï´Ù.
- Áö¼Ó¼º °ü¸®ÀÚ¸¦ È°¼ºÈÇÏ·Á¸é "Áö¼Ó¼º °ü¸®ÀÚ »ç¿ë" È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù. ÀÌÁ¦ ÁöÁ¤µÈ ¿¬°á ÆÑÅ丮¿¡ ´ëÇØ Áö¼Ó¼º °ü¸®ÀÚ°¡ È°¼ºÈµË´Ï´Ù.
- º¯°æ »çÇ×À» ÀúÀåÇÏ·Á¸é "È®ÀÎ"À» ´©¸¨´Ï´Ù.
JDBC ÀÚ¿ø Á¤º¸
ÀÌ ¸ðµâ¿¡¼´Â ÀϹÝÀûÀÎ JDBC API, JDBC ÀÚ¿ø ¹× ±¸Çö°ú Sun ONE Application Server¿¡¼ÀÇ »ç¿ë¿¡ ´ëÇØ ±¸Ã¼ÀûÀ¸·Î ¼³¸íÇÕ´Ï´Ù.
ÀÌ ¸ðµâÀº ´ÙÀ½ Àý·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
JDBC API Á¤º¸
JDBC API´Â ½ÇÁ¦·Î ¸ðµç À¯ÇüÀÇ Å×À̺í Çü½Ä µ¥ÀÌÅÍ¿¡ ¾×¼¼½ºÇϱâ À§ÇÑ Java APIÀÔ´Ï´Ù. Èï¹Ì·Ó°Ôµµ JDBC´Â ¸Ó¸® ±ÛÀھ ¾Æ´Ñ »óÇ¥ À̸§ÀÔ´Ï´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í JDBC¸¦ "Java Database Connectivity"ÀÇ ¾à¾î·Î »ý°¢ÇÏ´Â °æ¿ì°¡ Á¾Á¾ ÀÖ½À´Ï´Ù. JDBC API´Â µµ±¸/µ¥ÀÌÅͺ£À̽º °³¹ßÀÚ¸¦ À§ÇÑ Ç¥ÁØ API¸¦ Á¦°øÇÏ°í ¸ðµç Java API¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â Java ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ÀÛ¼ºµÈ ÀÏ·ÃÀÇ Å¬·¡½º¿Í ÀÎÅÍÆäÀ̽º·Î ±¸¼ºµË´Ï´Ù.
JDBC API´Â °ü°èÇü µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛÀ¸·Î SQL ¹®À» ½±°Ô º¸³¾ ¼ö ÀÖ°Ô ÇØÁÖ¸ç SQLÀÇ ¸ðµç ¾ð¾î¸¦ Áö¿øÇÕ´Ï´Ù. ÇÏÁö¸¸ JDBC 3.0 API´Â SQL ÀÌ»óÀ» Æ÷ÇÔÇϹǷΠµ¥ÀÌÅͺ£À̽º ¿ÜºÎÀÇ ÆÄÀÏÀ» ºñ·ÔÇÑ ´Ù¸¥ Á¾·ùÀÇ µ¥ÀÌÅÍ ¼Ò½º¿Íµµ »óÈ£ ÀÛ¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁÝ´Ï´Ù.
JDBC APIÀÇ ÀÌÁ¡Àº ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ½ÇÁ¦·Î ¸ðµç µ¥ÀÌÅÍ ¼Ò½º¿¡ ¾×¼¼½ºÇϸç Java °¡»ó ¸Ó½ÅÀ» »ç¿ëÇÏ´Â ¸ðµç Ç÷§Æû¿¡¼ ½ÇÇàµÉ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. Áï, JDBC API¸¦ »ç¿ëÇϸé Sybase µ¥ÀÌÅͺ£À̽º, Oracle µ¥ÀÌÅͺ£À̽º, IBM DB2 µ¥ÀÌÅͺ£À̽º °¢°¢À» ¾×¼¼½ºÇϱâ À§ÇØ º°µµÀÇ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ÇÊ¿ä°¡ ¾ø´Ù´Â °ÍÀÔ´Ï´Ù. JDBC API¸¦ »ç¿ëÇÏ¿© ´ÜÀÏ ÇÁ·Î±×·¥À» ÀÛ¼ºÇϸé ÀÌ ÇÁ·Î±×·¥¿¡¼ SQLÀ̳ª ±âŸ ¸í·É¹®À» ÀûÀýÇÑ µ¥ÀÌÅÍ ¼Ò½º·Î º¸³¾ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ Java ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ÀÛ¼ºµÈ ÀÀ¿ë ÇÁ·Î±×·¥À» »ç¿ëÇÏ¸é ¿©·¯ Ç÷§Æû¿¡¼ ½ÇÇàÇϱâ À§ÇØ ¿©·¯ ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. ÇÁ·Î±×·¡¸Ó´Â Java Ç÷§Æû°ú JDBC API¸¦ Á¶ÇÕÇÏ¿© Äڵ带 ÇÑ ¹ø¸¸ ÀÛ¼ºÇØ ³õÀ¸¸é ¾î´À Ç÷§Æû¿¡¼³ª ÀÌ Äڵ带 ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
JDBC API¸¦ »ç¿ëÇÑ ÀÛ¾÷
JDBC ±â¼ú ±â¹Ý µå¶óÀ̹ö(JDBC µå¶óÀ̹ö)¸¦ »ç¿ëÇÏ¸é ´ÙÀ½ ¼¼ °¡Áö ÀÛ¾÷À» ÇÒ ¼ö ÀÖ½À´Ï´Ù.
- µ¥ÀÌÅÍ ¼Ò½º¿ÍÀÇ ¿¬°á ¼³Á¤
- Äõ¸®¸¦ Àü¼ÛÇÏ¿© µ¥ÀÌÅÍ ¼Ò½º¿¡ ´ëÇÑ ¹® ¾÷µ¥ÀÌÆ®
- °á°ú ó¸®
´ÙÀ½ ÄÚµå ´ÜÆíÀº ÀÌ·¯ÇÑ ¼¼ ´Ü°è¿¡ ´ëÇÑ °£´ÜÇÑ ¿¹¸¦ Á¦°øÇÕ´Ï´Ù.
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("jdbc/AcmeDB");
Connection con = ds.getConnection("myLogin", "myPassword");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
µ¥ÀÌÅͺ£À̽º ¾×¼¼½º ¸ðµ¨ Á¤º¸
JDBC API´Â µ¥ÀÌÅͺ£À̽º ¾×¼¼½º¸¦ À§ÇØ 2°èÃþ°ú 3°èÃþ ¸ðµ¨À» ¸ðµÎ Áö¿øÇÕ´Ï´Ù. Sun ONE Application Server´Â Á» ´õ ÀϹÝÀûÀÎ 2°èÃþ µ¥ÀÌÅͺ£À̽º ¾×¼¼½º ¸ðµ¨À» ÅëÇÕÇÕ´Ï´Ù.
ÀÌ Àý¿¡¼´Â ´ÙÀ½ ³»¿ëÀ» ¼³¸íÇÕ´Ï´Ù.
2°èÃþ µ¥ÀÌÅͺ£À̽º ¾×¼¼½º ¸ðµ¨
2°èÃþ µ¥ÀÌÅͺ£À̽º ¾×¼¼½º ¸ðµ¨¿¡¼ Java ¾ÖÇø´À̳ª ÀÀ¿ë ÇÁ·Î±×·¥Àº DBMS ¼ÒÀ¯ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© µ¥ÀÌÅÍ ¼Ò½º¿Í Á÷Á¢ Åë½ÅÇÕ´Ï´Ù. ÀÌ ¾×¼¼½º ¸ðµ¨¿¡´Â ¾×¼¼½ºÇÒ Æ¯Á¤ µ¥ÀÌÅÍ ¼Ò½º¿Í Åë½ÅÇÒ ¼ö ÀÖ´Â JDBC µå¶óÀ̹ö°¡ ÇÊ¿äÇÕ´Ï´Ù. »ç¿ëÀÚÀÇ ¸í·ÉÀº µ¥ÀÌÅͺ£À̽º³ª ´Ù¸¥ µ¥ÀÌÅÍ ¼Ò½º·Î Àü´ÞµÇ¸ç ÀÌ·¯ÇÑ ¹®ÀÇ °á°ú´Â ´Ù½Ã »ç¿ëÀÚ¿¡°Ô º¸³»Áý´Ï´Ù. µ¥ÀÌÅÍ ¼Ò½º´Â ³×Æ®¿öÅ©¸¦ ÅëÇØ ¿¬°áµÈ ´Ù¸¥ ½Ã½ºÅÛ¿¡ ÀÖÀ» ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ±¸¼ºÀ» Ŭ¶óÀ̾ðÆ®/¼¹ö ±¸¼ºÀ̶ó°í ÇÏ¸ç »ç¿ëÀÚ ÄÄÇ»Åʹ Ŭ¶óÀ̾ðÆ®·Î, µ¥ÀÌÅÍ ¼Ò½º¸¦ °ü¸®ÇÏ´Â ÄÄÇ»ÅÍ´Â ¼¹öÀÇ ¿ªÇÒÀ» ÇÕ´Ï´Ù. ³×Æ®¿öÅ©´Â ±â¾÷ ³»¿¡¼ Á÷¿øÀ» ¿¬°áÇÏ´Â ÀÎÆ®¶ó³ÝÀÌ µÇ°Å³ª ÀÎÅͳÝÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù.
3°èÃþ µ¥ÀÌÅͺ£À̽º ¾×¼¼½º ¸ðµ¨
3°èÃþ µ¥ÀÌÅͺ£À̽º ¾×¼¼½º ¸ðµ¨¿¡¼ Java ¾ÖÇø´À̳ª ÀÀ¿ë ÇÁ·Î±×·¥Àº ¼ºñ½ºÀÇ "Áß°£ °èÃþ"À¸·Î ¸í·ÉÀ» º¸³»°í ÀÌ Áß°£ °èÃþÀº µ¥ÀÌÅÍ ¼Ò½º·Î ¸í·ÉÀ» º¸³À´Ï´Ù. Ŭ¶óÀ̾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥Àº HTTP, RM, CORBA ¶Ç´Â ±âŸ È£ÃâÀ» ÅëÇØ Áß°£ °èÃþ°ú Åë½ÅÇÕ´Ï´Ù. Áß°£ °èÃþÀº DBMS ¼ÒÀ¯ ÇÁ·ÎÅäÄÝÀ» ÅëÇØ µ¥ÀÌÅÍ ÀúÀå¼Ò¿Í Åë½ÅÇÕ´Ï´Ù. µ¥ÀÌÅÍ ¼Ò½º´Â ¸í·ÉÀ» ó¸®ÇÏ¿© °á°ú¸¦ ´Ù½Ã Áß°£ °èÃþ¿¡ º¸³»°í Áß°£ °èÃþÀº °á°ú¸¦ »ç¿ëÀÚ¿¡°Ô ´Ù½Ã º¸³À´Ï´Ù. MIS ´ã´çÀÚ´Â Áß°£ °èÃþÀ» »ç¿ëÇÏ¿© ±â¾÷ µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¿©·¯ °¡Áö ¾÷µ¥ÀÌÆ® ¹× ¾×¼¼½º¸¦ Á¦¾îÇÒ ¼ö ÀÖÀ¸¹Ç·Î
3°èÃþ ¸ðµ¨À» ¼±È£ÇÒ °ÍÀÔ´Ï´Ù. ±×¹ÛÀÇ ÀåÁ¡À¸·Î´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¹èÆ÷ °úÁ¤ÀÌ ´Ü¼øȵȴٴ °ÍÀÔ´Ï´Ù. ¸¶Áö¸·À¸·Î 3°èÃþ ±¸Á¶´Â ¼º´É»óÀÇ ÀÌÁ¡À» Á¦°øÇÕ´Ï´Ù.JDBC µ¥ÀÌÅÍ ¼Ò½º Á¤º¸
DataSource °´Ã¼´Â µ¥ÀÌÅÍ ¼Ò½º¸¦ Java ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ³ªÅ¸³½ °ÍÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î µ¥ÀÌÅÍ ¼Ò½º´Â µ¥ÀÌÅ͸¦ ÀúÀåÇϱâ À§ÇÑ ±â´ÉÀ» ÀǹÌÇÕ´Ï´Ù. µ¥ÀÌÅÍ ¼Ò½º´Â ´ë±â¾÷ÀÇ º¹ÀâÇÑ µ¥ÀÌÅͺ£À̽ºÃ³·³ º¹ÀâÇÒ ¼öµµ ÀÖ°í Çà°ú ¿·Î ±¸¼ºµÈ ÆÄÀÏó·³ °£´ÜÇÒ ¼öµµ ÀÖ½À´Ï´Ù. µ¥ÀÌÅÍ ¼Ò½º´Â ¿ø°Ý ¼¹ö¿¡ ÀÖÀ» ¼öµµ ÀÖ°í ·ÎÄà µ¥½ºÅ©Å¾ ÄÄÇ»ÅÍ¿¡ ÀÖÀ» ¼öµµ ÀÖ½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥Àº ¿¬°áÀ» »ç¿ëÇÏ¿© µ¥ÀÌÅÍ ¼Ò½º¿¡ ¾×¼¼½ºÇϹǷΠDataSource °´Ã¼´Â DataSource ÀνºÅϽº°¡ ³ªÅ¸³»´Â ƯÁ¤ µ¥ÀÌÅÍ ¼Ò½º ¿¬°áÀ» À§ÇÑ ÆÑÅ丮·Î »ý°¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌÅÍ ¼Ò½º ÀÎÅÍÆäÀ̽º´Â µ¥ÀÌÅÍ ¼Ò½º¿Í ¿¬°áÀ» ¼³Á¤Çϱâ À§ÇÑ µÎ °¡Áö ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù.
DataSource °´Ã¼¿¡´Â ÀÚ½ÅÀÌ ³ªÅ¸³»´Â µ¥ÀÌÅÍ ¼Ò½º¸¦ ½Äº°ÇÏ°í ¼³¸íÇÏ´Â µî·Ï Á¤º¸°¡ ÀÖ½À´Ï´Ù. ¶ÇÇÑ DataSource °´Ã¼´Â JNDI À̸§ ÁöÁ¤ ¼ºñ½º¿Í ÇÔ²² ÀÛµ¿Çϸç ÇØ´ç °´Ã¼¸¦ »ç¿ëÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥°ú´Â º°µµ·Î ¸¸µé¾îÁö°í ¹èÆ÷µÇ¸ç °ü¸®µË´Ï´Ù. µå¶óÀ̹ö °ø±Þ¾÷ü´Â DataSource ÀÎÅÍÆäÀ̽ºÀÇ ±âº» ±¸ÇöÀΠŬ·¡½º¸¦ JDBC 2.0 ¶Ç´Â 3.0 µå¶óÀ̹ö Á¦Ç°ÀÇ ÀϺηΠÁ¦°øÇÕ´Ï´Ù.
ÀÌ Àý¿¡¼´Â ´ÙÀ½ ³»¿ëÀ» ¼³¸íÇÕ´Ï´Ù.
µ¥ÀÌÅÍ ¼Ò½º °´Ã¼ÀÇ µî·Ï Á¤º¸
DataSource °´Ã¼¿¡´Â ÀÚ½ÅÀÌ ³ªÅ¸³»´Â ½ÇÁ¦ µ¥ÀÌÅÍ ¼Ò½º¸¦ ½Äº°ÇÏ°í ¼³¸íÇÏ´Â µî·Ï Á¤º¸°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ µî·Ï Á¤º¸¿¡´Â µ¥ÀÌÅͺ£À̽º ¼¹ö À§Ä¡, µ¥ÀÌÅͺ£À̽º À̸§, ¼¹ö¿Í Åë½ÅÇÏ´Â µ¥ »ç¿ëµÇ´Â ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝ µîÀÇ Á¤º¸°¡ Æ÷ÇԵ˴ϴÙ. DataSource µî·Ï Á¤º¸´Â JavaBeans µðÀÚÀÎ ÆÐÅÏÀ» µû¸£¸ç ´ë°³ DataSource °´Ã¼°¡ ¹èÆ÷µÉ ¶§ ¼³Á¤µË´Ï´Ù.
¿©·¯ °ø±Þ¾÷üÀÇ DataSource ±¸Çö °£¿¡ ÀÏ°ü¼ºÀ» À¯ÁöÇϱâ À§ÇØ JDBC 2.0 API´Â Ç¥ÁØ µî·Ï Á¤º¸ ÁýÇÕ°ú °¢ µî·Ï Á¤º¸¿¡ ´ëÇÑ Ç¥ÁØ À̸§À» ÁöÁ¤ÇÕ´Ï´Ù.
DataSource ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϴ Ŭ·¡½ºÀÇ ÀνºÅϽº´Â ÇÑ °³ÀÇ Æ¯Á¤ µ¥ÀÌÅÍ ¼Ò½º¸¦ ³ªÅ¸³À´Ï´Ù. ÇØ´ç ÀνºÅϽº¿¡ ÀÇÇØ ¼³Á¤µÇ´Â °¢ ¿¬°áÀº °°Àº µ¥ÀÌÅÍ ¼Ò½º¸¦ ÂüÁ¶ÇÕ´Ï´Ù. ±âº» DataSource ±¸Çö ½Ã DataSource.getConnection ¸Þ¼Òµå¸¦ È£ÃâÇϸé DriverManager ±â´É¿¡¼ ¹ÝȯÇÏ´Â ¿¬°á °´Ã¼¿Í °°Àº, µ¥ÀÌÅÍ ¼Ò½º¿¡ ´ëÇÑ ¹°¸®Àû ¿¬°á °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù.
JNDI´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ³×Æ®¿öÅ©¸¦ ÅëÇØ ¿ø°Ý ¼ºñ½º¸¦ ã¾Æ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â ÀÏ°üµÈ ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ¿ø°Ý ¼ºñ½º¿¡´Â ¸Þ½Ã¡ ¼ºñ½º³ª ÀÀ¿ë ÇÁ·Î±×·¥ ¼ºñ½º¸¦ ºñ·ÔÇÑ ¸ðµç ¿£ÅÍÇÁ¶óÀÌÁî ¼ºñ½º°¡ Æ÷ÇÔµÇÁö¸¸ JDBC ÀÀ¿ë ÇÁ·Î±×·¥Àº ÁÖ·Î µ¥ÀÌÅͺ£À̽º ¼ºñ½º¸¸ ó¸®ÇÕ´Ï´Ù. DataSource °´Ã¼¸¦ ¸¸µé¾î JNDI À̸§ ÁöÁ¤ ¼ºñ½º¿¡ µî·ÏÇϸé ÀÀ¿ë ÇÁ·Î±×·¥Àº JNDI API¸¦ »ç¿ëÇÏ¿© ÇØ´ç DataSource °´Ã¼¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ µ¥ÀÌÅÍ ¼Ò½º °´Ã¼´Â ÀÚ½ÅÀÌ ³ªÅ¸³»´Â µ¥ÀÌÅÍ ¼Ò½º¿¡ ¿¬°áÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
¸¶Âù°¡Áö·Î ¿¬°á Ç®¸µÀ» ±¸ÇöÇÏ´Â DataSource °´Ã¼´Â DataSource Ŭ·¡½º°¡ ³ªÅ¸³»´Â ƯÁ¤ µ¥ÀÌÅÍ ¼Ò½º¿¡ ´ëÇÑ ¿¬°áÀ» »ý¼ºÇÕ´Ï´Ù. ÇÏÁö¸¸ DataSource.getConnection ¸Þ¼Òµå°¡ ¹ÝȯÇÏ´Â ¿¬°á °´Ã¼´Â ¹°¸®Àû ¿¬°áÀÌ ¾Æ´Ñ PooledConnection °´Ã¼¿¡ ´ëÇÑ ÇÚµéÀÔ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥Àº Æò¼Ò´ë·Î ¿¬°á °´Ã¼¸¦ »ç¿ëÇϸç ÀϹÝÀûÀ¸·Î ÀÌ ¿¬°á °´Ã¼°¡ ¾î¶°ÇÑ ¹æ½ÄÀ¸·Î°Ç ´Þ¶óÁ³´Ù´Â Á¡À» ÀνÄÇÏÁö ¸øÇÕ´Ï´Ù. ¿¬°á Ç®¸µÀº ¸ðµç ¿¬°á°ú ¸¶Âù°¡Áö·Î Ç®¸µµÈ ¿¬°áÀÌ Ç×»ó ¸í½ÃÀûÀ¸·Î ´ÝÇô ÀÖ¾î¾ß ÇÑ´Ù´Â Á¡À» ¿¹¿Ü·Î Çϸé ÀÀ¿ë ÇÁ·Î±×·¥ Äڵ忡 ÀüÇô ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Ç®¸µµÈ ¿¬°áÀ» ´ÝÀ¸¸é ÇØ´ç ¿¬°áÀº Àç»ç¿ë °¡´ÉÇÑ ¿¬°á Ç®·Î µ¹¾Æ°©´Ï´Ù. ´ÙÀ½¿¡ DataSource.getConnectionÀ» È£ÃâÇϸé ÀÌ Ç®¸µµÈ ¿¬°á Áß Çϳª°¡ »ç¿ë °¡´ÉÇÑ °æ¿ì ÀÌ¿¡ ´ëÇÑ ÇÚµéÀÌ ¹ÝȯµË´Ï´Ù. ¿¬°á Ç®¸µÀ» »ç¿ëÇÏ¸é ¿¬°áÀÌ ¿äûµÉ ¶§¸¶´Ù ¹°¸®Àû ¿¬°áÀ» »õ·Î ¸¸µéÁö ¾Ê¾Æµµ µÇ¹Ç·Î ÀÀ¿ë ÇÁ·Î±×·¥À» ÈξÀ ´õ ºü¸£°Ô ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
ºÐ»ê Æ®·£Àè¼Ç ȯ°æ¿¡¼ ÀÛµ¿Çϵµ·Ï DataSource Ŭ·¡½º¸¦ ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, EJB ¼¹ö´Â ºÐ»ê Æ®·£Àè¼ÇÀ» Áö¿øÇÏ°í ÀڽŰú »óÈ£ ÀÛ¿ëÇϵµ·Ï ±¸ÇöµÇ´Â DataSource Ŭ·¡½º¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ÀÌ °æ¿ì DataSource.getConnection ¸Þ¼Òµå´Â ºÐ»ê Æ®·£Àè¼Ç¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿¬°á °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î EJB ¼¹ö´Â ºÐ»ê Æ®·£Àè¼Ç°ú ¿¬°á Ç®¸µ¿¡ ´ëÇÑ Áö¿ø ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ¿¬°á Ç®¸µ°ú ¸¶Âù°¡Áö·Î Æ®·£Àè¼Ç °ü¸®µµ ³»ºÎÀûÀ¸·Î 󸮵ǹǷΠºÐ»ê Æ®·£Àè¼ÇÀ» »ç¿ëÇϱ⠽±½À´Ï´Ù. Æ®·£Àè¼ÇÀ» ºÐ»êÇÏ´Â °æ¿ì(µÎ °³ ÀÌ»óÀÇ µ¥ÀÌÅÍ ¼Ò½º¿Í °ü·ÃµÇ´Â °æ¿ì) ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ commitÀ̳ª rollback °°Àº Æ®·£Àè¼Ç ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¼ö ¾ø´Ù´Â Á¡ÀÌ À¯ÀÏÇÑ Á¦ÇÑ »çÇ×ÀÔ´Ï´Ù. ¶ÇÇÑ ¿¬°áÀ» auto-commit ¸ðµå¿¡ µÑ ¼öµµ ¾ø½À´Ï´Ù. ÀÌ·¸°Ô Á¦ÇÑÀ» µÎ´Â ÀÌÀ¯´Â Æ®·£Àè¼Ç °ü¸®ÀÚ°¡ ºÐ»ê Æ®·£Àè¼ÇÀ» ¸ð¸£°Ô ½ÃÀÛÇÏ°í ³¡³»±â ¶§¹®¿¡ Æ®·£Àè¼ÇÀÌ ½ÃÀÛÇϰųª ³¡³ª´Â ½Ã°£¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ÀÛ¾÷À» ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ÇÒ ¼ö ¾ø°Ô µË´Ï´Ù. Java Æ®·£Àè¼Ç¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "Æ®·£Àè¼Ç ¼ºñ½º »ç¿ë"À» ÂüÁ¶ÇϽʽÿÀ.
JDBC ÀÚ¿ø µî·Ï
Sun ONE Application Server°ü¸® ÀÎÅÍÆäÀ̽º³ª ¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º Áß Çϳª¸¦ »ç¿ëÇÏ¿© JDBC ÀÚ¿øÀ» µî·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ Àý¿¡¼´Â ´ÙÀ½ ³»¿ëÀ» ¼³¸íÇÕ´Ï´Ù.
¸í·ÉÁÙÀ» »ç¿ëÇÏ¿© ÀÚ¿ø µî·Ï
¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© JDBC ÀÚ¿øÀ» µî·ÏÇÏ·Á¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.
./asadmin create-jdbc-resource
JDBC ÀÚ¿øÀ» µî·ÏÇÏ·Á¸é XML ÄÚµå ´ÜÆí¿¡¼ ¾Æ·¡(sun-server_7_0.dtd¿¡¼ ¹ßÃé)¿Í °°ÀÌ ¸î °¡Áö ¼Ó¼ºÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.
<!-- JDBC javax.sql.DataSource resource definition -->
<!ELEMENT jdbc-resource (description?, property*)>
<!ATTLIST jdbc-resource jndi-name CDATA #REQUIRED
pool-name CDATA #REQUIRED
enabled %boolean; 'true'>
¿©±â¿¡¼ ÁöÁ¤ÇÏ´Â ¸ðµç ³»¿ëÀº ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ J2EE ÀÀ¿ë ÇÁ·Î±×·¥ ³»ºÎ¿¡¼ ÀÌ µ¥ÀÌÅÍ ¼Ò½º¸¦ ÂüÁ¶ÇÒ ¶§ »ç¿ëÇÏ´Â ½Éº¼¸¯ À̸§ÀÔ´Ï´Ù. pool-name ¼Ó¼ºÀº µ¥ÀÌÅͺ£À̽º ¿¬°áÀÇ ¸ðµç Ãø¸éÀ» ÁöÁ¤ÇÏ´Â, À̸§ÀÌ ÁöÁ¤µÈ Ç® Á¤ÀǸ¦ °¡¸®Åµ´Ï´Ù. °ü¸®ÀÚ´Â È°¼º ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ÀϺΠÀÚ¿øÀ» ÇØÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù.
°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© ÀÚ¿ø µî·Ï
°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅÍ ¼Ò½º¸¦ µî·ÏÇÏ·Á¸é ´ÙÀ½ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù.
- °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿ÞÂÊ Ã¢¿¡¼ JDBC ÀÚ¿øÀ» µî·ÏÇÒ Sun ONE Application Server ÀνºÅϽº¸¦ ¿±´Ï´Ù.
- JDBC¸¦ ¿±´Ï´Ù.
- JDBC¿¡¼ "JDBC ÀÚ¿ø"À» ´©¸¨´Ï´Ù.
- ¿À¸¥ÂÊ Ã¢¿¡¼ "»õ·Î ¸¸µé±â"¸¦ ´©¸¨´Ï´Ù. ±×¸² "»õ JDBC ÀÚ¿ø ¸¸µé±â"¿¡ Ç¥½ÃµÈ °Í°ú °°ÀÌ »õ JDBC ÀÚ¿øÀ» ¸¸µé ¼ö ÀÖ´Â ÆäÀÌÁö°¡ ¿À¸¥ÂÊ Ã¢¿¡ Ç¥½ÃµË´Ï´Ù.
   »õ JDBC ÀÚ¿ø ¸¸µé±â
- ¸¸µé°í ÀÖ´Â ÀÚ¿ø¿¡ ´ëÇÑ JNDI À̸§À» ÀÔ·ÂÇÕ´Ï´Ù.
JDBC ÀÚ¿øÀº JNDI ¸®Æ÷ÁöÅ丮¿¡ ÀúÀåµÇ¸ç JNDI À̸§À» »ç¿ëÇÏ¿© ¾×¼¼½ºÇÕ´Ï´Ù. JNDI À̸§ÀÇ ·çÆ®´Â Java:comp:env/¿¡ ¸í½ÃµÇ¾î Àֱ⠶§¹®¿¡ À̸§ÀÇ ÇØ´ç ºÎºÐÀ» ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. JDBC ÀÚ¿ø(µ¥ÀÌÅÍ ¼Ò½º)Àº 'jdbc' ÇÏÀ§ ÄÁÅؽºÆ®¿¡ ÀúÀåÇÏ´Â °ÍÀÌ ÁÁÀ¸¹Ç·Î JNDI À̸§Àº jdbc/EmployeeDB_DS¿Í ºñ½ÁÇÒ °ÍÀÔ´Ï´Ù.
- "Ç® À̸§" µå·Ó´Ù¿î ¸ñ·ÏÀÇ Ç® À̸§ ¸ñ·Ï¿¡¼ »õ µ¥ÀÌÅÍ ¼Ò½º¿¡ ´ëÇÑ Ç® À̸§À» ¼±ÅÃÇÕ´Ï´Ù. µî·ÏµÈ ¸ðµç ¿¬°á Ç®ÀÌ ÀÌ µå·Ó´Ù¿î ¸ñ·Ï¿¡ Ç¥½ÃµË´Ï´Ù. ¼±ÅÃÇÑ Ç® À̸§Àº µ¥ÀÌÅͺ£À̽º ¿¬°áÀÇ ¸ðµç Ãø¸éÀ» ÁöÁ¤ÇÏ´Â, À̸§ÀÌ ÁöÁ¤µÈ Ç® Á¤ÀǸ¦ °¡¸®Åµ´Ï´Ù. µÎ °³ ÀÌ»óÀÇ JDBC ÀÚ¿øÀÌ ÇϳªÀÇ Ç® Á¤ÀǸ¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. JDBC ¿¬°á Ç® ±¸¼º ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© »õ JDBC ¿¬°á Ç® ¸¸µé±â"¸¦ ÂüÁ¶ÇϽʽÿÀ.
- µ¥ÀÌÅÍ ¼Ò½ºÀÇ ¿ëµµ¸¦ ¼³¸íÇÏ´Â °£´ÜÇÑ ¼³¸íÀ» "¼³¸í" Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù. ¼³¸íÀº 250ÀÚ¸¦ ÃÊ°úÇÒ ¼ö ¾ø½À´Ï´Ù.
- "»ç¿ë °¡´É" È®ÀζõÀ» ¼±ÅÃÇÏ¿© µ¥ÀÌÅÍ ¼Ò½º¸¦ È°¼ºÈÇϰųª ºñÈ°¼ºÈÇÕ´Ï´Ù. µ¥ÀÌÅÍ ¼Ò½º°¡ È°¼ºÈµÇ¾î ÀÖÁö ¾ÊÀ¸¸é µ¥ÀÌÅͺ£À̽º¸¦ ¿¬°áÇÒ ¶§ µ¥ÀÌÅÍ ¼Ò½º¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
- "È®ÀÎ"À» ´·¯ »õ µ¥ÀÌÅÍ ¼Ò½º¸¦ µî·ÏÇϰųª "Ãë¼Ò"¸¦ ´·¯ »õ µ¥ÀÌÅÍ ¼Ò½º¸¦ Ãë¼ÒÇÕ´Ï´Ù. "Ãë¼Ò"¸¦ ´©¸£¸é »õ µ¥ÀÌÅÍ ¼Ò½º¸¦ ´Ù½Ã ¸¸µé ¼ö ÀÖ´Â ÁÖ "JDBC ÀÚ¿ø" ÆäÀÌÁö·Î µ¹¾Æ°©´Ï´Ù.
JDBC ¿¬°á Á¤º¸
¿¬°á °´Ã¼´Â µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ¿¬°áÀ» ³ªÅ¸³À´Ï´Ù. ¿¬°á ¼¼¼Ç¿¡´Â ½ÇÇàµÈ SQL ¹®°ú ¿¬°áÀ» ÅëÇØ ¹ÝȯµÇ´Â °á°ú°¡ Æ÷ÇԵ˴ϴÙ. ´ÜÀÏ ÀÀ¿ë ÇÁ·Î±×·¥Àº ´ÜÀÏ µ¥ÀÌÅͺ£À̽º¿Í ÇÑ °³ ÀÌ»óÀÇ ¿¬°áÀ» °¡Áú ¼ö Àְųª ¸¹Àº µ¥ÀÌÅͺ£À̽º¿Í ¿¬°áÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù.
»ç¿ëÀÚ´Â Connection.getMetaData ¸Þ¼Òµå¸¦ È£ÃâÇÏ¿© ¿¬°á °´Ã¼ÀÇ µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â µ¥ÀÌÅͺ£À̽º Å×À̺í, Áö¿øÇÏ´Â SQL ¹®¹ý, ÀúÀå ÇÁ·Î½ÃÀú, ÀÌ·¯ÇÑ ¿¬°áÀÇ ±â´É µîÀÇ Á¤º¸°¡ ÀÖ´Â DatabaseMetaData °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù.
ÀÀ¿ë ÇÁ·Î±×·¥Àº µ¥ÀÌÅÍ ¼Ò½º °´Ã¼°¡ ¸¸µç ¿¬°á °´Ã¼¸¦ »ç¿ëÇÕ´Ï´Ù. ¿¹¿Ü°¡ ¹ß»ýÇÏ´õ¶óµµ ¿¬°áÀ» È®½ÇÈ÷ ´ÝÀ» ¼ö ÀÖµµ·Ï ÀÀ¿ë ÇÁ·Î±×·¥Àº Ç×»ó "finally" ºí·ÏÀ» Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. ÀÌ´Â À¯È¿ÇÑ ¿¬°áÀÌ »ç¿ë °¡´ÉÇÑ ¿¬°á Ç®¿¡ Ç×»ó ´Ù½Ã ¹ÝȯµÇµµ·Ï ÇϹǷΠ¿¬°á °´Ã¼°¡ Ç®¸µµÈ ¿¬°áÀÎ °æ¿ì ƯÈ÷ Áß¿äÇÕ´Ï´Ù. ´ÙÀ½ ÄÚµå ´ÜÆíÀº ¿¬°áÀÌ À¯È¿ÇÑ °æ¿ì ¿¬°áÀ» ´Ý´Â finally ºí·ÏÀÇ ¿¹ÀÌ¸ç ¿©±â¼ conÀº ¿¬°á °´Ã¼ÀÔ´Ï´Ù.
finally{
if (con != null) con.close();
}
´ÙÀ½ ¿¹¿¡¼¿Í °°ÀÌ finally ºí·ÏÀº try/catch ºí·Ï ´ÙÀ½¿¡ Ç¥½ÃµÇ¸ç ¿©±â¼ ds´Â µ¥ÀÌÅÍ ¼Ò½º °´Ã¼ÀÔ´Ï´Ù.
try {
Connection con = ds.getConnection("user", "secret");
// . . . code to do the application's work
} catch {
// . . . code to handle an SQLException
} finally {
if (con != null) con.close();
}
ÀÌ Àý¿¡¼´Â ´ÙÀ½ ³»¿ëÀ» ¼³¸íÇÕ´Ï´Ù.
JDBC URL Á¤º¸
URL (Uniform Resource Locator)Àº ÀÎÅͳݿ¡¼ ÀÚ¿øÀ» ã´Â µ¥ ÇÊ¿äÇÑ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù. URLÀº ÀÎÅͳݻóÀÇ ÁÖ¼Ò¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù.
JDBC URLÀº ÀûÀýÇÑ µå¶óÀ̹ö°¡ µ¥ÀÌÅÍ ¼Ò½º¸¦ ÀνÄÇÏ¿© µ¥ÀÌÅÍ ¼Ò½º¿ÍÀÇ ¿¬°áÀ» ¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï µ¥ÀÌÅÍ ¼Ò½º¸¦ ½Äº°ÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ƯÁ¤ µå¶óÀ̹ö¸¦ ½Äº°ÇÏ´Â JDBC URLÀ» ½ÇÁ¦·Î °áÁ¤ÇÏ´Â »ç¶÷Àº µå¶óÀ̹ö ÀÛ¼ºÀÚÀÔ´Ï´Ù. »ç¿ëÀÚ´Â JDBC URL ±¸¼º ¹æ¹ýÀ» ½Å°æ ¾µ ÇÊ¿ä°¡ ¾ø°í »ç¿ëÇÏ°í ÀÖ´Â µå¶óÀ̹ö¿¡¼ Á¦°øÇÏ´Â URLÀ» »ç¿ëÇϱ⸸ ÇÏ¸é µË´Ï´Ù. JDBCÀÇ ¿ªÇÒÀº µå¶óÀ̹ö ÀÛ¼ºÀÚ°¡ JDBC URLÀ» ±¸¼ºÇÒ ¶§ µû¶ó¾ß ÇÒ ¸î °¡Áö ±ÔÄ¢À» ±ÇÀåÇÏ´Â °ÍÀÔ´Ï´Ù.
JDBC URLÀº ´Ù¾çÇÑ µå¶óÀ̹ö¿Í ÇÔ²² »ç¿ëµÇ±â ¶§¹®¿¡ ±ÔÄ¢µµ ¸ÅÀ¯ À¯¿¬ÇØ¾ß ÇÕ´Ï´Ù. ¸ÕÀú, JDBC URLÀº ´Ù¾çÇÑ µå¶óÀ̹ö°¡ µ¥ÀÌÅͺ£À̽º À̸§À» ÁöÁ¤ÇÒ ¶§ ´Ù¾çÇÑ Ã¼°è¸¦ »ç¿ëÇÏ´Â °ÍÀ» Çã¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ODBC ÇÏÀ§ ÇÁ·ÎÅäÄÝÀº URLÀÌ ¼Ó¼º °ªÀ» °®´Â °ÍÀ» Çã¿ëÇÕ´Ï´Ù. ÇÏÁö¸¸ ¼Ó¼º °ªÀ» ¿ä±¸ÇÏÁö´Â ¾Ê½À´Ï´Ù.
µÎ ¹ø°·Î, JDBC URLÀº µå¶óÀ̹ö ÀÛ¼ºÀÚ°¡ JDBC URL ¾È¿¡ ÇÊ¿äÇÑ ¸ðµç ¿¬°á Á¤º¸¸¦ ÀÎÄÚµùÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÕ´Ï´Ù. µû¶ó¼ »ç¿ëÀÚ°¡ ½Ã½ºÅÛ °ü¸® ÀÛ¾÷À» ÇÏÁö ¾Ê´õ¶óµµ ÁÖ¾îÁø µ¥ÀÌÅͺ£À̽º¿Í Åë½ÅÇÏ·Á´Â ¾ÖÇø´ÀÌ µ¥ÀÌÅͺ£À̽º ¿¬°áÀ» ¿ ¼ö ÀÖ½À´Ï´Ù.
¼¼ ¹ø°·Î, JDBC URLÀº ÁÖ¼Ò °£Á¢µµ¸¦ Çã¿ëÇÕ´Ï´Ù. ÀÌ´Â JDBC URLÀÌ ³×Æ®¿öÅ© À̸§ ÁöÁ¤ ½Ã½ºÅÛ¿¡ ÀÇÇØ ½ÇÁ¦ À̸§À¸·Î µ¿Àû º¯È¯µÇ´Â ·ÎÄà ȣ½ºÆ®³ª µ¥ÀÌÅͺ£À̽º À̸§À» ÂüÁ¶ÇÒ °ÍÀÓÀ» ÀǹÌÇÕ´Ï´Ù. µû¶ó¼ ½Ã½ºÅÛ °ü¸®Àڴ ƯÁ¤ È£½ºÆ®¸¦ JDBC À̸§ÀÇ ÀϺηΠÁöÁ¤ÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. ´Ù¾çÇÑ ³×Æ®¿öÅ© À̸§ ¼ºñ½º°¡ ¸¹ÀÌ ÀÖÀ¸¸ç »ç¿ëÇÒ ¼ö ÀÖ´Â ¼ºñ½º¿¡ ´ëÇÑ Á¦ÇÑÀº ¾ø½À´Ï´Ù.
JDBC URLÀÇ Ç¥ÁØ ±¸¹®Àº ´ÙÀ½°ú °°½À´Ï´Ù. ¼¼ ºÎºÐÀ¸·Î µÇ¾î ÀÖÀ¸¸ç ÄÝ·ÐÀ¸·Î ±¸ºÐÇÕ´Ï´Ù.
jdbc:<subprotocol>:<subname>
JDBC URLÀÇ ¼¼ ºÎºÐÀº ´ÙÀ½°ú °°ÀÌ ±¸¼ºµË´Ï´Ù.
- jdbc-the protocol:
JDBC URLÀÇ ÇÁ·ÎÅäÄÝÀº Ç×»ó jdbcÀÔ´Ï´Ù.
- <subprotocol>
µå¶óÀ̹öÀÇ À̸§ ¶Ç´Â Çϳª ÀÌ»óÀÇ µå¶óÀ̹ö¿¡¼ Áö¿øÇÏ´Â µ¥ÀÌÅͺ£À̽º ¿¬°á ¸ÞÄ¿´ÏÁòÀÇ À̸§ÀÔ´Ï´Ù. ÇÏÀ§ ÇÁ·ÎÅäÄÝ À̸§ÀÇ µÎµå·¯Áø ¿¹´Â ODBC·Î ODBC ½ºÅ¸ÀÏ µ¥ÀÌÅÍ ¼Ò½º À̸§À» ÁöÁ¤ÇÏ´Â URLÀ» À§ÇØ ¿¹¾àµÇ¾î ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, JDBC-ODBC ºê¸®Áö¸¦ ÅëÇØ µ¥ÀÌÅͺ£À̽º¿¡ ¾×¼¼½ºÇÏ·Á¸é jdbc:odbc:fred °°Àº URLÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
ÀÌ ¿¹¿¡¼ ÇÏÀ§ ÇÁ·ÎÅäÄÝÀº ODBCÀ̸ç ÇÏÀ§ À̸§ fred´Â ·ÎÄà ODBC µ¥ÀÌÅÍ ¼Ò½ºÀÔ´Ï´Ù.
³×Æ®¿öÅ© À̸§ ¼ºñ½º¸¦ »ç¿ëÇÏ·Á´Â °æ¿ì(µû¶ó¼ JDBC URLÀÇ µ¥ÀÌÅͺ£À̽º À̸§ÀÌ ½ÇÁ¦ À̸§À» °¡Áú ÇÊ¿ä°¡ ¾ø´Â °æ¿ì), À̸§ ÁöÁ¤ ¼ºñ½º°¡ ÇÏÀ§ ÇÁ·ÎÅäÄÝÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼ URLÀÌ ´ÙÀ½°ú °°À» ¼ö ÀÖ½À´Ï´Ù.
jdbc:dcenaming:accounts-payable
ÀÌ ¿¹¿¡¼ URLÀº ·ÎÄà DCE À̸§ ÁöÁ¤ ¼ºñ½º°¡ °èÁ¤¿¡ ÀûÇÕÇÑ µ¥ÀÌÅͺ£À̽º À̸§À» ½ÇÁ¦ µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇÒ ¶§ »ç¿ëÇÒ ¼ö ÀÖ´Â Á» ´õ ±¸Ã¼ÀûÀÎ À̸§À¸·Î º¯È¯ÇÒ °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù.
- <subname>:
µ¥ÀÌÅÍ ¼Ò½º¸¦ ½Äº°ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÔ´Ï´Ù. ÇÏÀ§ ÇÁ·ÎÅäÄÝ¿¡ µû¶ó ÇÏÀ§ À̸§Àº ´Ù¾çÇÒ ¼ö ÀÖÀ¸¸ç sub-subnameÀ» ºñ·ÔÇÏ¿© µå¶óÀ̹ö ÀÛ¼ºÀÚ°¡ ¼±ÅÃÇÒ ¼ö ÀÖ´Â ³»ºÎ ±¸¹®À» °®½À´Ï´Ù. subnameÀÇ ÇÙ½ÉÀº µ¥ÀÌÅÍ ¼Ò½º¸¦ ã´Â µ¥ ÃæºÐÇÑ Á¤º¸¸¦ Á¦°øÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌÀü ¿¹ÀÇ °æ¿ì ODBC°¡ Á¤º¸ÀÇ ³ª¸ÓÁö ºÎºÐÀ» Á¦°øÇϹǷΠfred¸¸ ÁöÁ¤Çصµ ÃæºÐÇÕ´Ï´Ù. ÇÏÁö¸¸ ¿ø°Ý ¼¹öÀÇ µ¥ÀÌÅÍ ¼Ò½º´Â Á» ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÀÎÅͳÝÀ» ÅëÇØ µ¥ÀÌÅÍ ¼Ò½º¿¡ ¾×¼¼½ºÇÏ´Â °æ¿ì ³×Æ®¿öÅ© ÁÖ¼Ò°¡ subnameÀÇ ÀϺηΠJDBC URL¿¡ Æ÷ÇԵǾî¾ß ÇÏ¸ç ´ÙÀ½ Ç¥ÁØ URL ¸í¸í ±ÔÄ¢À» µû¶ó¾ß ÇÕ´Ï´Ù.
//hostname:port/subsubname
dbnetÀÌ ÀÎÅͳݿ¡¼ È£½ºÆ®¿¡ ¿¬°áÇϱâ À§ÇÑ ÇÁ·ÎÅäÄÝÀ̶ó°í °¡Á¤Çϸé JDBC URLÀº ´ÙÀ½°ú °°À» °ÍÀÔ´Ï´Ù.
jdbc:dbnet://wombat:356/fred
JDBC ¿¬°á Ç® ±¸¼º
Sun ONE Application Server¿¡¼ »ç¿ëÀÚ´Â À̸§ÀÌ ÁöÁ¤µÈ JDBC ¿¬°á Ç®À» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. JDBC ¿¬°á Ç®Àº ¿¬°á Ç®À» ¸¸µå´Â µ¥ »ç¿ëµÇ´Â µî·Ï Á¤º¸¸¦ Á¤ÀÇÇÕ´Ï´Ù. Ç® Á¤ÀÇÀÇ À̸§ÀÌ ÁöÁ¤µÇ¸ç ¿©·¯ JDBC ÀÚ¿øÀ» ±¸¼ºÇϱâ À§ÇØ Á¤ÀǸ¦ ´Ù½Ã »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸§ÀÌ ÁöÁ¤µÈ °¢ Ç® Á¤ÀÇ´Â ¼¹ö ½ÃÀÛ ½Ã ¹°¸®Àû Ç®À» ÀνºÅϽºÈÇÕ´Ï´Ù. µÎ °³ ÀÌ»óÀÇ JDBC ÀÚ¿øÀÌ °°Àº Ç® Á¤ÀǸ¦ °¡¸®Å°´Â °æ¿ì ÀÌ·¯ÇÑ ÀÚ¿øÀº ·±Å¸ÀÓ¿¡ °°Àº ¿¬°á Ç®À» »ç¿ëÇÏ°Ô µË´Ï´Ù.
´ÙÀ½ Àý¿¡¼ ¼³¸íÇÏ´Â ´ë·Î °ü¸® ÀÎÅÍÆäÀ̽º¿Í ¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© JDBC ¿¬°á Ç®À» ¸¸µé°í ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
- °ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© »õ JDBC ¿¬°á Ç® ¸¸µé±â
- ¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© »õ JDBC ¿¬°á Ç® ¸¸µé±â
- ¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© JDBC ¿¬°á Ç® °ü¸®
°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© »õ JDBC ¿¬°á Ç® ¸¸µé±â
°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© »õ JDBC ¿¬°á Ç®À» ¸¸µé·Á¸é ´ÙÀ½À» ¼öÇàÇÕ´Ï´Ù.
- °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿ÞÂÊ Ã¢¿¡¼ JDBC ¿¬°á Ç®À» ¸¸µé Sun ONE Application Server ÀνºÅϽº¸¦ ¿±´Ï´Ù.
- Sun ONE Application Server¿¡ ³ª¿µÈ J2EE ¼ºñ½º ¸ñ·Ï¿¡¼ "JDBC"¸¦ ¼±ÅÃÇÏ¿© ±× ¾Æ·¡ÀÇ ConnectionPools ÅÇÀ» ¿±´Ï´Ù. ±×¸² »õ JDBC ¿¬°á Ç® ¸¸µé±â¿Í °°Àº ȸéÀÌ °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿À¸¥ÂÊ Ã¢¿¡ Ç¥½ÃµË´Ï´Ù.
   »õ JDBC ¿¬°á Ç® ¸¸µé±â
- ¸¸µé°í ÀÖ´Â ¿¬°á Ç®ÀÇ JNDI À̸§À» "À̸§" Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù.
- »õ ¿¬°á Ç®¿¡ ´ëÇØ Àü¿ª Æ®·£Àè¼Ç Áö¿øÀ» È°¼ºÈÇÏ·Á¸é "Àü¿ª Æ®·£Àè¼Ç Áö¿ø »ç¿ë" È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù. Àü¿ª Æ®·£Àè¼Ç¿¡ Âü¿©ÇÒ ¼ö ÀÖ´Â ¿¬°á Ç®À» XA °¡´É ¿¬°á Ç®À̶ó°í ÇÕ´Ï´Ù.
- "µ¥ÀÌÅͺ£À̽º °ø±Þ¾÷ü" µå·Ó´Ù¿î ¸ñ·Ï¿¡¼ µ¥ÀÌÅͺ£À̽º °ø±Þ¾÷ü¸¦ ¼±ÅÃÇÏ°í "´ÙÀ½"À» ´©¸¨´Ï´Ù. ´ÙÀ½°ú °°Àº ȸ鿡¼ ¿¬°á Ç® ¼³Á¤À» ±¸¼ºÇØ¾ß ÇÕ´Ï´Ù.
¿¬°á Ç® ¼³Á¤ ±¸¼º
Ç® ¼³Á¤À» ±¸¼ºÇÏ·Á¸é "°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© »õ JDBC ¿¬°á Ç® ¸¸µé±â"ÀÇ ´Ü°è 1-´Ü°è 5¸¦ ¼öÇàÇÕ´Ï´Ù. ´Ü°è 5¿¡ ¼³¸íÇÑ ´ë·Î "´ÙÀ½"À» ´©¸£¸é °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿À¸¥ÂÊ Ã¢¿¡ »õ ÆäÀÌÁö°¡ Ç¥½ÃµË´Ï´Ù. ¿©±â¿¡´Â ´ÙÀ½°ú °°Àº ÀýÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.
- ÀϹÝ
- µî·Ï Á¤º¸
- Ç® ¼³Á¤
- ¿¬°á °ËÁõ
- Æ®·£Àè¼Ç °Ý¸®
´ÙÀ½ Ç¥ÀÇ Áöħ¿¡ µû¶ó Á¦°øµÈ ¸Å°³ º¯¼öÀÇ °ªÀ» ÀÌ ÆäÀÌÁöÀÇ "ÀϹÝ" ¼½¼Ç¿¡¼ ÁöÁ¤ÇÕ´Ï´Ù.
   ÀÏ¹Ý ¼³Á¤
¸Å°³ º¯¼ö
¼³¸í
À̸§
¿¬°á Ç®ÀÇ À̸§ÀÔ´Ï´Ù.
µ¥ÀÌÅÍ ¼Ò½º Ŭ·¡½º À̸§
µ¥ÀÌÅÍ ¼Ò½º ¹×/¶Ç´Â XADataSource API¸¦ ±¸ÇöÇÏ´Â °ø±Þ¾÷üº° Ŭ·¡½º À̸§ÀÔ´Ï´Ù.
¼³¸í
¿¬°á Ç®¿¡ ´ëÇÑ ¼³¸íÀÔ´Ï´Ù.
ÀÌ ÆäÀÌÁöÀÇ "µî·Ï Á¤º¸" ¼½¼Ç¿¡¼ Ç¥ÁØ ¹× µ¶Á¡ JDBC ¿¬°á Ç® µî·Ï Á¤º¸¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ µî·Ï Á¤º¸ Áß ¸¹Àº ºÎºÐÀº ¼±Åà »çÇ×ÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î ¸ðµç Ç¥ÁØ µî·Ï Á¤º¸ÀÇ À̸§ÀÌ Á¦°øµË´Ï´Ù. ¾î¶² Ç¥ÁØ µî·Ï Á¤º¸ ¹× °ø±Þ¾÷ü °ü·Ã µî·Ï Á¤º¸°¡ ÇÊ¿äÇÑÁö È®ÀÎÇÏ·Á¸é µ¥ÀÌÅͺ£À̽º °ø±Þ¾÷üÀÇ ¼³¸í¼¸¦ ÂüÁ¶ÇØ¾ß ÇÕ´Ï´Ù.
´ÙÀ½ Ç¥ÀÇ Áöħ¿¡ µû¶ó Á¦°øµÈ ¸Å°³ º¯¼öÀÇ °ªÀ» ÀÌ Ã¢ÀÇ "Ç® ¼³Á¤" ¼½¼Ç¿¡¼ ÁöÁ¤ÇÕ´Ï´Ù.
ÀÌ Ã¢ÀÇ "¿¬°á °ËÁõ" ¹× "Æ®·£Àè¼Ç °Ý¸®"¿¡¼ ´ÙÀ½ Ç¥ÀÇ Áöħ¿¡ µû¶ó ¿¬°á Ç®ÀÇ °ËÁõ ¹æ¹ý°ú Æ®·£Àè¼Ç °Ý¸® ¹æ¹ýÀ» ¼±ÅÃÇÕ´Ï´Ù.
¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© »õ JDBC ¿¬°á Ç® ¸¸µé±â
ÀÌ Àý¿¡¼´Â ¿¹¸¦ ÅëÇØ ¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© JDBC ¿¬°á Ç®À» ¸¸µå´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
´ÙÀ½ Ç¥´Â ¿¬°á Ç®À» ¸¸µå´Â µ¥ ÇÊ¿äÇÑ ¸ðµç ¿É¼Ç(¿¹: ¼¹ö À̸§, ¾ÏÈ£)À» ³ª¿ÇÕ´Ï´Ù. ´ÙÀ½ Ç¥¿¡´Â »ùÇà °ªÀÌ »ç¿ëµÇ¾ú½À´Ï´Ù. ÀÌ Àý¿¡¼ ¼³¸íÇÑ ¸í·ÉÀ» ½ÇÇàÇϱâ Àü¿¡ Sun ONE Application Server ¼³Ä¡¿Í °ü·ÃµÈ ¸Å°³ º¯¼ö¸¦ ÁغñÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
´ÙÀ½ ¿¹¿¡¼´Â "¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© JDBC ¿¬°á Ç®À» ¸¸µå´Â µ¥ ÇÊ¿äÇÑ ¿É¼Ç" Ç¥¿¡ ³ª¿µÈ º¯¼ö¸¦ »ç¿ëÇÕ´Ï´Ù.
¿¹ 1:
ÀÌ ¿¹¿¡¼´Â SampleJdbcConnectionPoolÀ̶ó´Â JDBC ¿¬°á Ç®À» ¸¸µì´Ï´Ù. ÀÌ ¿¹¿¡¼´Â JDBC ¿¬°á Ç®À» ¸¸µé±â À§ÇØ ´ÙÀ½°ú °°ÀÌ µÎ ´Ü°è °úÁ¤À» »ç¿ëÇÕ´Ï´Ù.
1´Ü°è - ¿¬°á Ç® ¸¸µé±â
´ÙÀ½Àº JDBC ¿¬°á Ç®À» ¸¸µé±â À§ÇÑ ¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º ±¸¹®ÀÔ´Ï´Ù.
asadmin create-jdbc-connection-pool --user admin_user [--password admin_password] [--host localhost] [--port 4848] [--secure | -s] [--instance instancename] --datasourceclassname classname [--restype res_type] [--steadypoolsize 8] [--maxpoolsize 32] [--maxwait 60000] [--poolresize 2] [--idletimeout 300] [--isolationlevel isolation_level] [--isisolationguaranteed] [--isconnectvalidatereq=false] [--validationmethod auto-commit] [--validationtable tablename] [--failconnection=false] [--description text] [--property (name=value)[:name=value]*] connectionpool_id
¿¹¸¦ µé¾î, ´ÙÀ½ ¸í·ÉÀº SampleJdbcConnectionPoolÀ̶ó´Â ¿¬°á Ç®À» ¸¸µì´Ï´Ù.
asadmin create-jdbc-connection-pool --user admin --password adminadmin --host sas.sun.com --port 8888 --instance server1 --restype javax.sql.XADataSource --datasourceclassname oracle.jdbc.xa.client.OracleXADataSource --description "Sample Jdbc Connection Pool" --property User="oracle":Password="oracle":URL="jdbc\:oracle\:thin\:@oracleserver.sun.com\:1521\: ORA" SampleJdbcConnectionPool
ÁÖ »õ ¿¬°á Ç®¿¡ ´ëÇØ "Àü¿ª Æ®·£Àè¼Ç Áö¿ø"À» È°¼ºÈÇÏ·Á¸é --restype javax.sql.XADataSource¸¦ ¼³Á¤ÇÕ´Ï´Ù. URL µî·Ï Á¤º¸¿¡¼ ÄÝ·Ð(:)À» (\:)À¸·Î ¹Ù²Ù½Ê½Ã¿À.
JDBC ¿¬°á Ç®ÀÌ ¼º°øÀûÀ¸·Î ¸¸µé¾îÁö¸é ´ÙÀ½ ¸Þ½ÃÁö°¡ Ç¥½ÃµË´Ï´Ù.
Created the JDBC connection pool resource with id = SampleJdbcConnectionPool
2´Ü°è - ÀνºÅϽº¿¡ º¯°æ »çÇ× Àû¿ë
ÀÌÁ¦ JDBC ¿¬°á Ç®À» ¼º°øÀûÀ¸·Î ¸¸µé¾úÀ¸¹Ç·Î ÀÌ·¯ÇÑ º¯°æ »çÇ×À» Sun ONE Application ServerÀÇ ÇöÀç ÀνºÅϽº¿¡ Àû¿ëÇØ¾ß ÇÕ´Ï´Ù.
´ÙÀ½Àº Sun ONE Application ServerÀÇ ÀνºÅϽº¿¡ º¯°æ »çÇ×À» Àû¿ëÇϱâ À§ÇÑ ±¸¹®ÀÔ´Ï´Ù.
asadmin reconfig --user admin_user [--password admin_password] [--host localhost] [--port adminport] [--secure | -s] [--discardmanualchanges=false|--keepmanualchanges=false] instancename
¿¹¸¦ µé¾î, ´ÙÀ½ ¸í·ÉÀº Sun ONE Application ServerÀÇ ÀνºÅϽºÀÎ server1¿¡ º¯°æ »çÇ×À» Àû¿ëÇÕ´Ï´Ù.
asadmin reconfig --user admin --password adminadmin --host sas.sun.com --port 8888 server1
Sun ONE Application ServerÀÇ ÀνºÅϽº¿¡ º¯°æ »çÇ×ÀÌ Àû¿ëµÇ¸é ´ÙÀ½ ¸Þ½ÃÁö°¡ Ç¥½ÃµË´Ï´Ù.
Successfully reconfigured
¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© JDBC ¿¬°á Ç® °ü¸®
ÀÌ Àý¿¡¼ ¼³¸íÇÏ´Â ´ë·Î ¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© JDBC ¿¬°á Ç®°ú ÇØ´ç µî·Ï Á¤º¸¸¦ °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¬°á Ç® ³ª¿. ´ÙÀ½ ¸í·ÉÀº 2´Ü°è¿¡¼ »ç¿ëÇÑ Sun ONE Application ServerÀÇ ÀνºÅϽºÀÎ server1¿¡ ´ëÇØ ¸¸µç ¸ðµç ¿¬°á Ç®À» ³ª¿ÇÕ´Ï´Ù.
asadmin list-jdbc-connection-pools --user admin --password adminadmin --host sas.sun.com --port 8888 server1
JDBC ¿¬°á Ç® µî·Ï Á¤º¸ º¯°æ. ´ÙÀ½°ú °°ÀÌ maxPoolSize µî·Ï Á¤º¸ °°Àº JDBC ¿¬°á Ç® µî·Ï Á¤º¸¸¦ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.
- JDBC ¿¬°á Ç® ¼Ó¼º maxPoolSize¿¡ ÁöÁ¤ÇÑ °ªÀ» ¾òÀ¸·Á¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.
asadmin get -u admin -w adminadmin -H sas.sun.com -p 8888 server1.jdbc-connection-pool.SampleJdbcConnectionPool.maxPoolSize
ÀÌ ¸í·ÉÀ» ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°Àº °á°ú°¡ Ç¥½ÃµË´Ï´Ù.
server1.jdbc-connection-pool.SampleJdbcConnectionPool.maxPoolSize = 32
´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÏ¿© MaxPoolSize °ªÀ» 80À¸·Î º¯°æÇÕ´Ï´Ù.
asadmin set -u admin -w adminadmin -H sas.sun.com -p 8888 server1.jdbc-connection-pool.SampleJdbcConnectionPool.maxPoolSize="80"
Ç¥½ÃµÈ ´ë·Î °ªÀ» ÁöÁ¤ÇÏ¸é ´ÙÀ½ ¸Þ½ÃÁö°¡ Ç¥½ÃµË´Ï´Ù.
Attribute maxPoolSize set to 80
- ´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇÏ¿© Sun ONE Application ServerÀÇ ÀνºÅϽº¿¡ º¯°æ »çÇ×À» Àû¿ëÇÕ´Ï´Ù.
asadmin reconfig --user admin --password adminadmin --host sas.sun.com --port 8888 server1
»ç¿ëÀÚ µî·Ï Á¤º¸ º¯°æ. ´ÙÀ½ »ùÇà Äڵ忡¼ "User" µî·Ï Á¤º¸¸¦ oracle¿¡¼ SystemÀ¸·Î º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.
asadmin create-jdbc-connection-pool --user admin --password adminadmin --host sas.sun.com --port 8888 --instance server1 --restype javax.sql.XADataSource --datasourceclassname oracle.jdbc.xa.client.OracleXADataSource --description "Sample Jdbc Connection Pool" --property User="oracle":Password="oracle":URL="jdbc\:oracle\:thin\:@oracleserver.sun.com\:1521\: ORA" SampleJdbcConnectionPool
- »ç¿ëÀÚ µî·Ï Á¤º¸¸¦ º¯°æÇÏ·Á¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.
asadmin set -u admin -w adminadmin -H sas.sun.com -p 8888 server1.jdbc-connection-pool.SampleJdbcConnectionPool.property.User="System"
»ç¿ëÀÚ À̸§ÀÌ Oracle¿¡¼ SystemÀ¸·Î º¯°æµË´Ï´Ù.
- »ç¿ëÀÚ À̸§À» º¯°æÇÏ°í ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÏ¿© º¯°æ »çÇ×À» Àû¿ëÇÕ´Ï´Ù.
asadmin reconfig --user admin --password adminadmin --host sas.sun.com --port 8888 server1
SampleJdbcResource¶ó´Â JDBC ÀÚ¿ø ¸¸µé±â. ¾Æ·¡¿¡ ¼³¸íÇÑ ´ë·Î JDBC ÀÚ¿øÀ» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº JDBC ÀÚ¿øÀ» ¸¸µé±â À§ÇÑ ±¸¹®ÀÔ´Ï´Ù.
asadmin create-jdbc-resource --user admin_user [--password admin_password] [--host localhost] [--port 4848] [--secure | -s] [--instance instancename] --connectionpoolid id [--enabled=true] [--description text] [--property (name=value)[:name=value]*] jndiname
- SampleJdbcResource¶ó´Â JDBC ÀÚ¿øÀ» ¸¸µé·Á¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.
asadmin create-jdbc-resource --user admin --password adminadmin --host sas.sun.com --port 8888 --instance server1 --description "Sample Jdbc Resource" --connectionpoolid SampleJdbcConnectionPool jdbc/SampleJdbcResource
ÀÌ ¸í·ÉÀ» ½ÇÇàÇϸé JDBC ÀÚ¿øÀÌ ¸¸µé¾îÁö°í ´ÙÀ½ ¸Þ½ÃÁö°¡ Ç¥½ÃµË´Ï´Ù.
Created the external JDBC resource with jndiname = jdbc/SampleJdbcResource
- ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÏ¿© Sun ONE Application ServerÀÇ ÀνºÅϽº¿¡ º¯°æ »çÇ×À» Àû¿ëÇÕ´Ï´Ù.
asadmin reconfig --user admin --password adminadmin --host sas.sun.com --port 8888 server1
- ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÏ¿© server1 ÀνºÅϽºÀÇ JDBC ÀÚ¿øÀ» ¸ðµÎ ³ª¿ÇÕ´Ï´Ù.
asadmin list-jdbc-resources --user admin --password adminadmin --host sas.sun.com --port 8888 server1
¿¬°á Ç®¸µ Á¤º¸
ÀÀ¿ë ÇÁ·Î±×·¥Àº JNDI¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅÍ ¼Ò½º¸¦ ¸ÕÀú Á¶È¸ÇÏ¿© ¿¬°áÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÀÛ¾÷À» À§ÇÑ »ùÇà ÄÚµå ´ÜÆíÀÌ ¾Æ·¡¿¡ ³ª¿Í ÀÖ½À´Ï´Ù.
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/employee_ds");
DataSource¸¦ ¾òÀº ´ÙÀ½ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò´Â J2EE ¹èÆ÷ ¼³¸íÀÚÀÇ <res-auth> ¿ä¼Ò¿¡ ¼³Á¤µÈ °ª¿¡ µû¶ó µÎ °¡Áö ¹æ¹ýÀ¸·Î ¿¬°áÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿ä¼ÒÀÇ °ªÀÌ ContainerÀÎ °æ¿ì ÀÀ¿ë ÇÁ·Î±×·¥Àº ds.getConnection() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿©(Áï, »çÀÎ ¿Â Á¤º¸¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ½) ¿¬°áÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì ÀÀ¿ë ÇÁ·Î±×·¥Àº »çÀÎ ¿Â Á¤º¸¸¦ ÀÔ·ÂÇؾ߸¸ ds.getConnecion(userName, password)°°Àº ÀÚ¿ø °ü¸®ÀڷκÎÅÍ ¿¬°áÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
getConnection()¿¡ ´ëÇÑ ¸ðµç ¿äûÀº Ç®¿¡¼ 󸮵˴ϴÙ. server.xml¿¡¼ ¼³¸íµÈ ÀÏ·ÃÀÇ ¸Å°³ º¯¼ö¿¡ µû¶ó JDBC ¿¬°á Ç®ÀÌ ¸¸µé¾îÁý´Ï´Ù. Ç®ÀÌ ¸¸µé¾îÁö¸é Ç®¿¡¼ óÀ½¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿¬°á °³¼ö°¡ ÁöÁ¤µË´Ï´Ù. µû¶ó¼ ds.getConnection() ¿äûÀº Ç®¿¡¼ ÇöÀç »ç¿ëÇÒ ¼ö ÀÖ´Â ¿¬°á¿¡ µû¶ó ó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ¿äûÀº Ç®ÀÌ ºñ¾î ÀÖÀ½À» ¹ß°ßÇÏ°í(ÀÌÀü ¿¬°á Áß¿¡¼ Ç®·Î ¹ÝȯµÈ ¿¬°áÀÌ ¾ø´Â °æ¿ì) Ç®¿¡ ÁöÁ¤µÈ ÃÖ´ë ¿¬°á °³¼ö Á¦ÇÑ¿¡ µû¶ó ¿¬°á ¼ö¸¦ ´Ã¸®°Ô µË´Ï´Ù. Ç® ±¸ÇöÀº ¸¸µé¾îÁø ¿¬°á °³¼ö¸¦ ÃßÀûÇÕ´Ï´Ù. getConnection() ¿äûÀÌ Ç®ÀÌ ºñ¾î ÀÖÀ½À» ¹ß°ßÇϰųª ¸¸µç ¿¬°á ¼ö°¡ Ç®ÀÇ ÃÖ´ë ¿¬°á ¼ö¿Í °°Àº °æ¿ì ÇöÀç ¿äûÀÌ Â÷´ÜµË´Ï´Ù. ¿¬°á °øÀ¯°¡ °¡´ÉÇÏÁö ¾ÊÀº °æ¿ì¿¡¸¸ Â÷´ÜµÇ¸ç ¿¬°áÀÌ Ç®¿¡ ¹ÝȯµÉ ¶§±îÁö °è¼ÓµË´Ï´Ù.
µ¥ÀÌÅͺ£À̽º°¡ Å©·¡½ÃµÇ¾î ½ÃÀ۵Ǵõ¶óµµ ¿¬°á Ç®ÀÌ °è¼Ó ½ÇÇàµÇ´Â ÇÑ ¿¬°á Ç®Àº °è¼Ó Á¦´ë·Î ÀÛµ¿ÇÕ´Ï´Ù. "¿¬°á Ç® ¼³Á¤ ±¸¼º"¿¡ ¼³¸íÇÑ ´ë·Î ¿¬°á °ËÁõÀ» È°¼ºÈÇÑ °æ¿ì¿¡¸¸ ÀÛµ¿ÇÕ´Ï´Ù.
"°ËÁõ À¯Çü" µå·Ó´Ù¿î ¸ñ·Ï¿¡¼ ¼±ÅÃÇÑ °ª¿¡ µû¶ó ´ÙÀ½ ¸Å°³ º¯¼ö°¡ Ç® ±¸Çö ÇÁ·Î±×·¥¿¡ ÀÇÇØ ½ÇÇàµË´Ï´Ù.
- auto-commitÀ» ¿¬°á °ËÁõ À¯ÇüÀ¸·Î ¼±ÅÃÇÑ °æ¿ì ½Ã½ºÅÛ¿¡¼´Â conn.getAutoCommit() ¸Þ¼Òµå¸¦ ¼öÇàÇÏ¿© ¿¬°áÀÌ À¯È¿ÇÑÁö ¿©ºÎ¸¦ °Ë»çÇÕ´Ï´Ù. ¸Þ¼Òµå°¡ SQLExceptionÀ» ¹ß»ý½ÃÅ°Áö ¾ÊÀ¸¸é ¿¬°áÀº À¯È¿ÇÑ °ÍÀ¸·Î °£Áֵ˴ϴÙ. auto-commitÀº ÀÌ ¸Å°³ º¯¼öÀÇ ±âº» ¿É¼ÇÀÔ´Ï´Ù.
- meta-data¸¦ ¿¬°á °ËÁõ À¯ÇüÀ¸·Î ¼±ÅÃÇÑ °æ¿ì conn.getMetaData() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ¿¬°áÀÇ ¸ÞŸµ¥ÀÌÅ͸¦ °Ë»çÇÕ´Ï´Ù. ¸Þ¼Òµå°¡ SQLExceptionÀ» ¹ß»ý½ÃÅ°Áö ¾ÊÀ¸¸é ¿¬°áÀº À¯È¿ÇÑ °ÍÀ¸·Î °£Áֵ˴ϴÙ.
- tableÀ» ¿¬°á °ËÁõ À¯ÇüÀ¸·Î ¼±ÅÃÇÑ °æ¿ì "Select * From <table-name>" Äõ¸®°¡ ½ÇÇàµË´Ï´Ù. ÀÌ È£ÃâÀÌ SQLExceptionÀ» ¹ß»ý½ÃÅ°Áö ¾ÊÀ¸¸é ¿¬°áÀº À¯È¿ÇÑ °ÍÀ¸·Î °£Áֵ˴ϴÙ.
fail-all-connections µî·Ï Á¤º¸¸¦ È°¼ºÈÇÑ °æ¿ì Ç®ÀÇ ¿¬°á Áß ¾î´À Çϳª¶óµµ À¯È¿ÇÏÁö ¾ÊÀº °ÍÀ¸·Î È®ÀÎµÇ¸é ¸ðµç ¿¬°áÀÌ ´ÝÈ÷°í ´Ù½Ã ¼³Á¤µË´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì ¹«È¿ ¹× Àç¼³Á¤ÀÌ Áö¿¬µÇ¾ú´Ù°¡ °³º° ¿¬°áÀ» »ç¿ëÇÒ ¶§ ¹ß»ýÇÕ´Ï´Ù.
¶ÇÇÑ Ç® ±¸ÇöÀº Ç®¿¡¼ »ç¿ë °¡´ÉÇÑ ¿¬°áÀ» ¸ðµÎ Àç¼øȯÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ¿¬°áÀÌ ÁöÁ¤µÈ À¯ÈÞ ±â°£À» ÃÊ°úÇÏ¿© À¯ÈÞ »óÅ·ΠÀÖ´Â °æ¿ì ¿¬°áÀÌ ´ÝÈ÷¸ç Ç® Å©±â´Â °íÁ¤ Ç® Å©±â·Î ¹Ù²ò´Ï´Ù. Ç®ÀÌ °úµµÇÏ°Ô À¯ÈÞ »óÅ¿¡ ÀÖ´Â °æ¿ì ÄÁÅ×À̳ʰ¡ ºñÈ°¼ºÈµÈ ¿¬°áÀ» ´Ù½Ã ¼³Á¤ÇÏ·Á°í ½ÃµµÇÒ ¼ö ÀÖÀ¸¹Ç·Î Ç×»ó Ç®À» »ç¿ë °¡´ÉÇÑ °íÁ¤ °³¼ö·Î ä¿ö ³õ¾Æ¾ß ÇÕ´Ï´Ù. ÃÖ´ë Ç® Å©±â¿¡ »ó´ëÀûÀ¸·Î °íÁ¤ Ç® Å©±â¸¦ ¼³Á¤ÇÒ °ÍÀÎÁö ¿©ºÎ¸¦ °áÁ¤ÇÒ ¶§¿¡´Â ÀÌ ³»¿ëÀ» À¯³äÇØ¾ß ÇÕ´Ï´Ù.
JDBC ¿¬°á Ç®¸µ ¸ð´ÏÅ͸µ
Ç® Å©±â ±¸¼ºÀÌ È¿À²ÀûÀ¸·Î ÀÛµ¿ÇÏ´ÂÁö È®ÀÎÇϱâ À§ÇØ Ç® ÀÛ¾÷À» ÁÖ±âÀûÀ¸·Î ¸ð´ÏÅ͸µÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ Ç¥´Â ¸ð´ÏÅ͸µÇÒ ¼ö ÀÖ´Â ¸ðµç JDBC ¿¬°á Ç®¸µ ¸Å°³ º¯¼ö¸¦ ³ª¿ÇÕ´Ï´Ù.
¸ð´ÏÅ͸µÀ» È°¼ºÈÇÏ´Â ¹æ¹ý°ú ¸ð´ÏÅ͸µÇÒ ¼ö ÀÖ´Â ¼Ó¼ºÀº ´ÙÀ½ ¸±¸®½º¿¡¼ °³¼±µÉ °ÍÀÔ´Ï´Ù.
¿¬°á °øÀ¯ Á¤º¸
J2EE ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ¾òÀº ¿©·¯ ¿¬°áÀÌ µ¿ÀÏÇÑ ÀÚ¿ø °ü¸®ÀÚ¸¦ »ç¿ëÇÏ´Â °æ¿ì Ç® ±¸Çö ½Ã °°Àº Æ®·£Àè¼Ç ¹üÀ§ ³»¿¡¼ ¿¬°á °øÀ¯¸¦ Á¦°øÇÕ´Ï´Ù. Æ®·£Àè¼Ç ¹üÀ§¶ó´Â ¿ë¾î¸¦ ÀÌÇØÇÏ·Á¸é ´ÙÀ½ ¿¹¸¦ ÂüÁ¶ÇϽʽÿÀ.
Bean_A´Â Æ®·£Àè¼Ç(Tx1)À» ½ÃÀÛÇÏ¿© ¿¬°áÀ» ¾ò½À´Ï´Ù. ±×·± ´ÙÀ½ Bean_A´Â °°Àº Æ®·£Àè¼Ç(Tx1)ÀÇ Bean_B¿¡¼ ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. Bean_B´Â °°Àº DataSource·ÎºÎÅÍ °°Àº »çÀÎ ¿Â Á¤º¸¸¦ »ç¿ëÇÏ¿© ¿¬°áÀ» ¾òÀ¸¹Ç·Î Bean_A°¡ Æ®·£Àè¼ÇÀ» ¿Ï·áÇÑ °æ¿ì¿¡¸¸ °°Àº ¿¬°áÀ» °øÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÀÚ¿ø °øÀ¯ ¹üÀ§°¡ J2ee ¹èÆ÷ ¼³¸íÀÚ¿¡¼ Shareable·Î ¼³Á¤µÈ °æ¿ì¿¡¸¸ ¿¬°áÀ» °øÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¬°á °øÀ¯¸¦ ¿øÇÏÁö ¾Ê´Â °æ¿ì ¹èÆ÷ ¼³¸íÀÚ¿¡¼ ÀÚ¿ø °øÀ¯ ¹üÀ§¸¦ Unshareable·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. Sun ONE Application Server´Â ¼º´É Çâ»óÀ» À§ÇØ ¿¬°á °øÀ¯¸¦ Á¦°øÇÕ´Ï´Ù.
JDBC Æ®·£Àè¼Ç Á¤º¸
Æ®·£Àè¼ÇÀº ½ÇÇàµÇ°í ¿Ï·áµÈ ´ÙÀ½ ¿Ï°áµÇ°Å³ª ·Ñ¹éµÈ Çϳª ÀÌ»óÀÇ ¹®À¸·Î ±¸¼ºµË´Ï´Ù. commitÀ̳ª rollback ¸Þ¼Òµå°¡ È£ÃâµÇ¸é ÇöÀç Æ®·£Àè¼ÇÀÌ ³¡³ª°í ´Ù¸¥ Æ®·£Àè¼ÇÀÌ ½ÃÀ۵˴ϴÙ.
ÀϹÝÀûÀ¸·Î »õ ¿¬°á °´Ã¼´Â ±âº»ÀûÀ¸·Î auto-commit ¸ðµå¿¡ ¹èÄ¡µÇ¸ç ÀÌ´Â ¹®ÀÌ ¿Ï·áµÇ¸é ÇØ´ç ¹®¿¡ ´ëÇØ commit ¸Þ¼Òµå°¡ ÀÚµ¿À¸·Î È£ÃâµÉ °ÍÀÓÀ» ÀǹÌÇÕ´Ï´Ù. ÀÌ °æ¿ì °¢ ¹®Àº °³º°ÀûÀ¸·Î ¿Ï°áµÇ¹Ç·Î ÇÑ Æ®·£Àè¼ÇÀº ÇÑ ¹®À¸·Î ±¸¼ºµË´Ï´Ù. auto-commit ¸ðµå°¡ ºñÈ°¼ºÈµÇ¾î ÀÖ´Â °æ¿ì commitÀ̳ª rollback ¸Þ¼Òµå°¡ ¸í½ÃÀûÀ¸·Î È£ÃâµÉ ¶§±îÁö Æ®·£Àè¼ÇÀº Á¾·áµÇÁö ¾Ê½À´Ï´Ù. µû¶ó¼ commitÀ̳ª rollback¸¦ ¸¶Áö¸·À¸·Î È£ÃâÇÑ ÀÌÈÄ¿¡ ½ÇÇàµÈ ¸ðµç ¹®À» Æ÷ÇÔÇÏ°Ô µË´Ï´Ù. µÎ ¹ø°ÀÇ °æ¿ì Æ®·£Àè¼ÇÀÇ ¸ðµç ¹®Àº ±×·ìÀ¸·Î ¿Ï°áµÇ°Å³ª ·Ñ¹éµË´Ï´Ù.
commit ¸Þ¼Òµå´Â SQL ¹®ÀÌ µ¥ÀÌÅͺ£À̽º¿¡ º¯°æÇÑ ³»¿ëÀ» ¿µ±¸ÀûÀ¸·Î ¹Ý¿µÇϸç Æ®·£Àè¼Ç¿¡¼ ¼³Á¤ÇÑ Àá±ÝÀ» ÇØÁ¦ÇÕ´Ï´Ù. rollback ¸Þ¼Òµå´Â ÀÌ·¯ÇÑ º¯°æ »çÇ×À» ¹«½ÃÇÕ´Ï´Ù.
ÇÑ Æ®·£Àè¼Ç¿¡ µÎ °³ÀÇ ¾÷µ¥ÀÌÆ®°¡ ÀÖ´Â °æ¿ì µÎ ¹ø° ¾÷µ¥ÀÌÆ®µµ ÇÔ²² º¯°æµÇÁö ¾Ê´Â´Ù¸é ÇÑ ¾÷µ¥ÀÌÆ®¿¡ ´ëÇؼ¸¸ º¯°æ »çÇ×À» Àû¿ëÇÏ°í ½ÍÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é auto-commitÀ» ºñÈ°¼ºÈÇÏ°í µÎ ¾÷µ¥ÀÌÆ®¸¦ ÇÑ Æ®·£Àè¼ÇÀ¸·Î ±×·ìÈÇÏ¸é µË´Ï´Ù. µÎ °¡Áö ¾÷µ¥ÀÌÆ®°¡ ¸ðµÎ ¼º°øÇÑ °æ¿ì commit ¸Þ¼Òµå°¡ È£ÃâµÇ¾î µÎ °¡Áö ¾÷µ¥ÀÌÆ®°¡ ¸ðµÎ ¿µ±¸ÀûÀ¸·Î ¹Ý¿µµË´Ï´Ù. ÇÑ ¾÷µ¥ÀÌÆ®³ª µÎ °¡Áö ¾÷µ¥ÀÌÆ®°¡ ¸ðµÎ ½ÇÆÐÇϸé rollback ¸Þ¼Òµå°¡ È£ÃâµÇ¾î ¾÷µ¥ÀÌÆ®°¡ ½ÇÇàµÇ±â ÀÌÀüÀÇ °ªÀ» º¹±¸ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ JDBC µå¶óÀ̹ö´Â Æ®·£Àè¼ÇÀ» Áö¿øÇÕ´Ï´Ù.
javax.sql ÆÐÅ°ÁöÀÇ Å¬·¡½º¿Í ÀÎÅÍÆäÀ̽º´Â ¿¬°á °´Ã¼°¡ ºÐ»ê Æ®·£Àè¼Ç(µÎ °³ ÀÌ»óÀÇ DBMS ¼¹ö¿¡ ´ëÇÑ ¿¬°á°ú °ü·ÃµÈ Æ®·£Àè¼Ç)ÀÇ ÀϺΰ¡ µÉ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. ºÐ»ê Æ®·£Àè¼Ç¿¡ Âü¿©ÇÏ·Á¸é Áß°£ °èÃþ ¼¹öÀÇ ºÐ»ê Æ®·£Àè¼Ç ÀÎÇÁ¶ó¿Í ÀÛ¾÷ÇÒ ¼ö ÀÖµµ·Ï ±¸ÇöµÈ DataSource °´Ã¼°¡ ¿¬°á °´Ã¼¸¦ ¸¸µé¾î¾ß ÇÕ´Ï´Ù. DriverManager°¡ ¸¸µç ¿¬°á °´Ã¼¿Í´Â ´Þ¸® DataSource °´Ã¼°¡ ¸¸µç ¿¬°á °´Ã¼´Â ±âº»ÀûÀ¸·Î auto-commit ¸ðµå°¡ ºñÈ°¼ºÈµÇ¾î ÀÖ½À´Ï´Ù. ¹Ý¸é DataSource °´Ã¼ÀÇ Ç¥ÁØ ±¸ÇöÀº DriverManager Ŭ·¡½º°¡ ¸¸µå´Â °Í°ú ¶È°°Àº ¿¬°á °´Ã¼¸¦ ¸¸µì´Ï´Ù.
¿¬°á °´Ã¼°¡ ºÐ»ê Æ®·£Àè¼ÇÀÇ ÀϺÎÀÎ °æ¿ì Æ®·£Àè¼Ç °ü¸®ÀÚ´Â commit ¶Ç´Â rollback ¸Þ¼Òµå°¡ È£ÃâµÈ ½ÃÁ¡À» È®ÀÎÇÕ´Ï´Ù. µû¶ó¼ ¿¬°á °´Ã¼°¡ ºÐ»ê Æ®·£Àè¼Ç¿¡ Âü¿©ÇÏ°í ÀÖ´Â °æ¿ì ÀÀ¿ë ÇÁ·Î±×·¥Àº Connection.commitÀ̳ª Connection.rollback ¸Þ¼Òµå¸¦ È£ÃâÇϰųª ¿¬°áÀÇ auto-commit ¸ðµå¸¦ ¼³Á¤ÇÏ´Â µî ¿¬°áÀÌ ½ÃÀ۵ǰųª ³¡³ª´Â ½Ã±â¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ÀÛ¾÷À» ÇÏ¸é ¾È µË´Ï´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷Àº Æ®·£Àè¼Ç °ü¸®ÀÚ°¡ ºÐ»ê Æ®·£Àè¼ÇÀ» ó¸®ÇÏ´Â µ¥ ¹æÇØ°¡ µË´Ï´Ù.
JavaMail ÀÚ¿ø Á¤º¸
JavaMail API¸¦ »ç¿ëÇÏ¸é ¸Þ½ÃÁö ÀúÀå¼Ò¿¡ Æ÷ÇÔµÈ ÀüÀÚ ¿ìÆí ¸Þ½ÃÁö¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖÀ¸¸ç ¸Þ½ÃÁö Àü¼ÛÀ» »ç¿ëÇÏ¿© ÀüÀÚ ¿ìÆí ¸Þ½ÃÁö¸¦ ¸¸µé°í Àü¼ÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÎÅÍ³Ý Ç¥ÁØ MIME ¸Þ½ÃÁö¿¡ ´ëÇÑ Áö¿ø ±â´Éµµ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ¸Þ½ÃÁö ÀúÀå¼Ò¿Í Àü¼Û¿¡ ´ëÇÑ ¾×¼¼½º´Â ƯÁ¤ ÀúÀå¼Ò¿Í Àü¼Û ÇÁ·ÎÅäÄÝÀ» Áö¿øÇÏ´Â ÇÁ·ÎÅäÄÝ °ø±ÞÀÚ¸¦ ÅëÇØ ÀÌ·ç¾îÁý´Ï´Ù. JavaMail API »ç¾ç¿¡¼´Â ƯÁ¤ ÇÁ·ÎÅäÄÝ °ø±ÞÀÚ¸¦ ¿ä±¸ÇÏÁö´Â ¾ÊÁö¸¸ JavaMail¿¡´Â IMAP ¸Þ½ÃÁö ÀúÀå¼Ò °ø±ÞÀÚ¿Í SMTP ¸Þ½ÃÁö Àü¼Û °ø±ÞÀÚ°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.
JavaMail API´Â ¿ìÆí ½Ã½ºÅÛÀ» ±¸¼ºÇÏ´Â °´Ã¼¸¦ Á¤ÀÇÇÏ´Â Ãß»ó Ŭ·¡½º ÁýÇÕÀ» Á¦°øÇÕ´Ï´Ù. API´Â ¸Þ½ÃÁö, ÀúÀå¼Ò, Àü¼Û µî°ú °°Àº Ŭ·¡½º¸¦ Á¤ÀÇÇÕ´Ï´Ù. »õ ÇÁ·ÎÅäÄÝÀ» Á¦°øÇÏ°í ÇÊ¿äÇÑ °æ¿ì ±â´ÉÀ» Ãß°¡Çϱâ À§ÇØ API¸¦ È®ÀåÇÏ°í ÇÏÀ§ Ŭ·¡½º·Î ³ª´ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ API´Â Ãß»ó Ŭ·¡½ºÀÇ ±¸Ã¼ÀûÀÎ ÇÏÀ§ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. MimeMessage¿Í MimeBodyPart °°Àº ÇÏÀ§ Ŭ·¡½º´Â ³Î¸® »ç¿ëµÇ´Â ÀÎÅÍ³Ý ¿ìÆí ÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇÕ´Ï´Ù.
JavaMail API´Â IMAP, MAPI, CMC, c-client ¹× ±âŸ ÀüÀÚ ¿ìÆí ¸Þ½Ã¡ ½Ã½ºÅÛ API¿Í ¸¹Àº »óÈ£ ÀÛ¿ëÀ» ÇÕ´Ï´Ù. JavaMail API´Â ´Ù¾çÇÑ ¸Þ½ÃÁö ÀúÀå¼Ò¿Í ´Ù¾çÇÑ ¸Þ½ÃÁö Çü½Ä ¹× ´Ù¾çÇÑ ¸Þ½ÃÁö Àü¼Û °°Àº ¿©·¯ ¸Þ½Ã¡ ½Ã½ºÅÛ ±¸ÇöÀ» Áö¿øÇÕ´Ï´Ù. JavaMail API´Â Ŭ¶óÀ̾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ API¸¦ Á¤ÀÇÇÏ´Â ±âº» Ŭ·¡½º¿Í ÀÎÅÍÆäÀ̽º ÁýÇÕÀ» Á¦°øÇÕ´Ï´Ù. °³¹ßÀÚ´Â IMAP, POP3, SMTP °°Àº ƯÁ¤ ¸Þ½Ã¡ ½Ã½ºÅÛ ±¸ÇöÀ» À§ÇØ JavaMail Ŭ·¡½º¸¦ ÇÏÀ§ Ŭ·¡½º·Î ³ª´ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ Àý¿¡¼´Â ´ÙÀ½ ³»¿ëÀ» ¼³¸íÇÕ´Ï´Ù.
- JavaMail ¸Þ½ÃÁö ó¸® °úÁ¤ Á¤º¸
- JavaMailÀÇ ±¸Á¶Àû ±¸¼º ¿ä¼Ò Á¤º¸
- JAF (JavaBeans Activation Framework) Á¤º¸
- JavaMail ±¸¼º ¸Å°³ º¯¼ö Á¤º¸
- JavaMail ¼¼¼Ç ÂüÁ¶¿ë J2EE ¹èÆ÷ ¼³¸íÀÚ
- Sun ONE Application Server ¹èÆ÷ ¼³¸íÀÚÀÇ Ç׸ñ
- »õ JavaMail ¼¼¼Ç ¸¸µé±â
- °í±Þ ÀÚ¿ø µî·Ï Á¤º¸ ±¸¼º
JavaMail ¸Þ½ÃÁö ó¸® °úÁ¤ Á¤º¸
JavaMail API´Â ÀÏ¹Ý Å¬¶óÀ̾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥À» À§ÇÑ Ç¥ÁØ ¿ìÆí ó¸® °úÁ¤À» ±¸¼ºÇÏ´Â ´ÙÀ½ ±â´ÉÀ» ¼öÇàÇÕ´Ï´Ù.
- Content-Type Çì´õ Çʵ忡 ÁöÁ¤µÈ ¸î °¡Áö ¾Ë·ÁÁø µ¥ÀÌÅÍ À¯ÇüÀÇ µ¥ÀÌÅÍ ºí·Ï°ú Çì´õ ¼Ó¼º ÁýÇÕÀ¸·Î ÀÌ·ç¾îÁø ¿ìÆí ¸Þ½ÃÁö¸¦ ¸¸µì´Ï´Ù. JavaMailÀº Part ÀÎÅÍÆäÀ̽º¿Í ¸Þ½ÃÁö Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© ¿ìÆí ¸Þ½ÃÁö¸¦ Á¤ÀÇÇÕ´Ï´Ù. ±×¸®°í JAF Á¤ÀÇ DataHandler °´Ã¼¸¦ »ç¿ëÇÏ¿© ¸Þ½ÃÁö¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÕ´Ï´Ù.
- »ç¿ëÀÚ¸¦ ÀÎÁõÇÏ°í ¸Þ½ÃÁö ÀúÀå¼Ò¿Í Àü¼Û¿¡ ´ëÇÑ ¾×¼¼½º¸¦ Á¦¾îÇÏ´Â ¼¼¼Ç °´Ã¼¸¦ ¸¸µì´Ï´Ù.
- ¸Þ½ÃÁö¸¦ ¹Þ´Â »ç¶÷ ¸ñ·ÏÀ¸·Î º¸³À´Ï´Ù.
- ¸Þ½ÃÁö ÀúÀå¼Ò·ÎºÎÅÍ ¸Þ½ÃÁö¸¦ °Ë»öÇÕ´Ï´Ù.
- °Ë»öµÈ ¸Þ½ÃÁö¿¡¼ °í±Þ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù. view¿Í print °°Àº °í±Þ ¸í·ÉÀº JAF ÀÎ½Ä JavaBeans¸¦ ÅëÇØ ±¸ÇöµÇµµ·Ï ¸¸µé¾îÁ³½À´Ï´Ù.
ÁÖ ÇöÀç JavaMail ÇÁ·¹ÀÓ¿öÅ©´Â ¸Þ½ÃÁö Àü´Þ, º¸¾È, ¿¬°á ÇØÁ¦ ÀÛ¾÷, µð·ºÅ丮 ¼ºñ½º ¶Ç´Â ÇÊÅÍ ±â´ÉÀ» Áö¿øÇÏ´Â ¸ÞÄ¿´ÏÁòÀº Á¤ÀÇÇÏÁö ¾Ê½À´Ï´Ù.
´ÙÀ½ ±×¸²Àº JavaMail API°¡ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â °úÁ¤À» º¸¿©ÁÝ´Ï´Ù.
  
JavaMail APIÀÇ ¸Þ½ÃÁö ó¸® °úÁ¤JavaMail API´Â javax.mail.SessionÀ» ¸¸µå´Â Á¤Àû ÆÑÅ丮 ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ±¸¼ºµÇ¾ú½À´Ï´Ù. Sun ONE Application Server´Â JNDI¸¦ »ç¿ëÇÏ¿© ¼¼¼Ç °´Ã¼¸¦ ¿äûÇÏ°í resource-ref ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© ¹èÆ÷ ¼³¸íÀÚ¿¡ ¼¼¼Ç °´Ã¼¿¡ ´ëÇÑ ¿äûÀ» ³ª¿ÇÕ´Ï´Ù. JavaMail API ¼¼¼Ç °´Ã¼´Â ÀÚ¿ø ÆÑÅ丮·Î °£Áֵ˴ϴÙ.
¸Þ½ÃÁö Àü¼ÛÀº javax.mail.internet.InternetAddress À¯ÇüÀÇ ÁÖ¼Ò¿Í javax.mail.internet.MimeMessage À¯ÇüÀÇ ¸Þ½ÃÁö¸¦ ó¸®ÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. javax.mail.Transport Ŭ·¡½ºÀÇ send ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÀÌ·¯ÇÑ ¸Þ½ÃÁö¸¦ Àü¼ÛÇÒ ¼ö ÀÖµµ·Ï ±âº» ¸Þ½ÃÁö Àü¼ÛÀ» ¿Ã¹Ù¸£°Ô ±¸¼ºÇØ¾ß ÇÕ´Ï´Ù.
JavaMail APIÀÇ Ãß»ó °èÃþÀº ¸ðµç ¿ìÆí ½Ã½ºÅÛÀÌ Áö¿øÇÏ´Â ¿ìÆí ó¸® ±â´ÉÀ» Áö¿øÇϱâ À§ÇØ Å¬·¡½º, ÀÎÅÍÆäÀ̽º ¹× Ãß»ó ¸Þ¼Òµå¸¦ ¼±¾ðÇÕ´Ï´Ù. Ãß»ó °èÃþÀ» ±¸¼ºÇÏ´Â API ¿ä¼Ò´Â Ç¥ÁØ µ¥ÀÌÅÍ À¯ÇüÀ» Áö¿øÇÏ°í ÇÊ¿äÇÑ °æ¿ì ¸Þ½ÃÁö ¾×¼¼½º¿Í ¸Þ½ÃÁö Àü¼Û ÇÁ·ÎÅäÄÝ°ú »óÈ£ ÀÛ¿ëÇϱâ À§ÇØ ÇÏÀ§ Ŭ·¡½º·Î ³ª´µ°í È®ÀåµÇµµ·Ï ¼³°èµÇ¾ú½À´Ï´Ù.
ÀÎÅÍ³Ý ±¸Çö °èÃþÀº ÀÎÅÍ³Ý Ç¥ÁØ - RFC822¿Í MIMEÀ» »ç¿ëÇÏ¿© Ãß»ó °èÃþÀÇ ÀϺθ¦ ±¸ÇöÇÕ´Ï´Ù.
JavaMailÀÇ ±¸Á¶Àû ±¸¼º ¿ä¼Ò Á¤º¸
ÀÌ Àý¿¡¼´Â ´ÙÀ½ Ç׸ñÀ» ÅëÇØ JavaMail ±¸Á¶¸¦ ±¸¼ºÇÏ´Â ÁÖ¿ä ±¸¼º ¿ä¼Ò¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
¸Þ½ÃÁö Ŭ·¡½º
¸Þ½ÃÁö Ŭ·¡½º´Â ¿ìÆí ¸Þ½ÃÁö ³»¿ë°ú ¼Ó¼º ÁýÇÕÀ» Á¤ÀÇÇÏ´Â Ãß»ó Ŭ·¡½ºÀÔ´Ï´Ù. ¸Þ½ÃÁö Ŭ·¡½ºÀÇ ¼Ó¼ºÀº ÁÖ¼Ò ÁöÁ¤ Á¤º¸¸¦ ÁöÁ¤ÇÏ°í ³»¿ë À¯ÇüÀ» ºñ·ÔÇÑ ³»¿ë ±¸Á¶¸¦ Á¤ÀÇÇÕ´Ï´Ù. ³»¿ëÀº ½ÇÁ¦ µ¥ÀÌÅ͸¦ µÑ·¯½Î´Â DataHandler °´Ã¼·Î Ç¥ÇöµË´Ï´Ù.
¸Þ½ÃÁö Ŭ·¡½º´Â Part ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù. Part ÀÎÅÍÆäÀ̽º´Â ¸Þ½ÃÁö °´Ã¼°¡ Àü´ÞÇÏ´Â µ¥ÀÌÅÍ ³»¿ëÀ» Á¤ÀÇÇÏ°í Çü½ÄÀ» ÁöÁ¤ÇÏ¸ç ¿ìÆí ½Ã½ºÅÛ°ú ¼º°øÀûÀ¸·Î ÀÎÅÍÆäÀ̽ºÇÏ´Â µ¥ ÇÊ¿äÇÑ ¼Ó¼ºÀ» Á¤ÀÇÇÕ´Ï´Ù. ¸Þ½ÃÁö Ŭ·¡½º´Â ¸Þ½ÃÁö Àü¼Û ½Ã½ºÅÛÀ» ÅëÇØ ¸Þ½ÃÁö¸¦ ¶ó¿ìÆÃÇÒ ¶§ ÇÊ¿äÇÑ º¸³½ »ç¶÷, ¹Þ´Â »ç¶÷, Á¦¸ñ, ȸ½Å ¹× ±âŸ ¼Ó¼ºÀ» Ãß°¡ÇÕ´Ï´Ù. ¸Þ½ÃÁö °´Ã¼°¡ Æú´õ¿¡ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì ÇØ´ç °´Ã¼´Â ÀڽŰú °ü·ÃµÈ ÀÏ·ÃÀÇ Å±׸¦ °®½À´Ï´Ù. JavaMailÀº ƯÁ¤ ¸Þ½Ã¡ ±¸ÇöÀ» Áö¿øÇÏ´Â ¸Þ½ÃÁö ÇÏÀ§ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù.
¸Þ½ÃÁö ³»¿ëÀº ¸Þ½ÃÁö °´Ã¼ ³»¿¡ ĸ½¶ÈµÈ ¹ÙÀÌÆ® ¸ðÀ½À̰ųª ¹ÙÀÌÆ® ¸ðÀ½¿¡ ´ëÇÑ ÂüÁ¶ÀÔ´Ï´Ù. JavaMailÀº ¸Þ½ÃÁö ³»¿ëÀÇ µ¥ÀÌÅÍ À¯ÇüÀ̳ª Çü½ÄÀ» ¾ËÁö ¸øÇÕ´Ï´Ù. ¸Þ½ÃÁö °´Ã¼´Â Áß°£ °èÃþ - JAF (JavaBeans Activation Framework)¸¦ ÅëÇØ ÇØ´ç ³»¿ë°ú »óÈ£ ÀÛ¿ëÇÕ´Ï´Ù. ÀÌ·¸°Ô ºÐ¸®µÇ¾î Àֱ⠶§¹®¿¡ ¸Þ½ÃÁö °´Ã¼´Â ÀÓÀÇÀÇ ³»¿ëÀ» ó¸®ÇÑ ´ÙÀ½ °°Àº API ¸Þ¼Òµå¸¦ È£ÃâÇÏ°í ÀûÀýÇÑ Àü¼Û ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© ³»¿ëÀ» Àü¼ÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸Þ½ÃÁö ¹Þ´Â »ç¶÷Àº ÀϹÝÀûÀ¸·Î ÇØ´ç ³»¿ëÀÇ µ¥ÀÌÅÍ À¯Çü ¹× Çü½Ä°ú ±× ó¸® ¹æ¹ýÀ» ¾Ë°í ÀÖ½À´Ï´Ù.
¶ÇÇÑ JavaMail API´Â °¢ Bodypart°¡ ÀÚ½ÅÀÇ °íÀ¯ ¼Ó¼º ¹× ³»¿ë ÁýÇÕÀ» Á¤ÀÇÇÏ´Â multipart ¸Þ½ÃÁö °´Ã¼¸¦ Áö¿øÇÕ´Ï´Ù.
¸Þ½ÃÁö ÀúÀå ¹× °Ë»ö
¸Þ½ÃÁö´Â Æú´õ °´Ã¼¿¡ ÀúÀåµË´Ï´Ù. Æú´õ °´Ã¼´Â ¸Þ½ÃÁö¿Í ÇÏÀ§ Æú´õ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖÀ¸¹Ç·Î Æ®¸®Çü Æú´õ °èÃþÀ» Á¦°øÇÕ´Ï´Ù. Æú´õ Ŭ·¡½º´Â ¸Þ½ÃÁö¸¦ ºÒ·¯¿À°í Ãß°¡ÇÏ¸ç º¹»çÇÏ°í »èÁ¦ÇÏ´Â ¸Þ¼Òµå¸¦ ¼±¾ðÇÕ´Ï´Ù. ¶ÇÇÑ Æú´õ °´Ã¼´Â Event Listener·Î µî·ÏµÈ ±¸¼º ¿ä¼Ò·Î À̺¥Æ®¸¦ º¸³¾ ¼ö ÀÖ½À´Ï´Ù.
ÀúÀå¼Ò Ŭ·¡½º
ÀúÀå¼Ò Ŭ·¡½º´Â ¸Þ½ÃÁö¿Í ÇÔ²² Æú´õ °èÃþÀ» º¸°üÇÏ´Â µ¥ÀÌÅͺ£À̽º¸¦ Á¤ÀÇÇÕ´Ï´Ù. ¶ÇÇÑ ÀúÀå¼Ò Ŭ·¡½º´Â Æú´õ¿¡ ¾×¼¼½ºÇÏ¿© Æú´õ¿¡ ÀúÀåµÈ ¸Þ½ÃÁö¸¦ °Ë»öÇÏ´Â ¾×¼¼½º ÇÁ·ÎÅäÄÝÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¶ÇÇÑ Æú´õ¸¦ ºÒ·¯¿À°í ¿¬°áÀ» ´Ý±â À§ÇØ µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ¿¬°áÀ» ¼³Á¤ÇÏ´Â ¸Þ¼Òµå¸¦ Á¦°øÇÕ´Ï´Ù. ¸Þ½ÃÁö ¾×¼¼½º ÇÁ·ÎÅäÄÝ(IMAP, POP3 µî)À» ±¸ÇöÇÏ´Â ¼ºñ½º °ø±ÞÀÚ´Â ÀúÀå¼Ò Ŭ·¡½º¸¦ ÇÏÀ§ Ŭ·¡½º·Î ³ª´©´Â ÀÛ¾÷ºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù. »ç¿ëÀÚ´Â ÀϹÝÀûÀ¸·Î ƯÁ¤ ÀúÀå¼Ò ±¸Çö¿¡ ¿¬°áÇÏ¿© ¿ìÆí ½Ã½ºÅÛ°úÀÇ ¼¼¼ÇÀ» ½ÃÀÛÇÕ´Ï´Ù.
¸Þ½ÃÁö ÀÛ¼º ¹× Àü¼Û
Ŭ¶óÀ̾ðÆ®´Â ÀûÀýÇÑ ¸Þ½ÃÁö ÇÏÀ§ Ŭ·¡½º¸¦ ÀνºÅϽºÈÇÏ¿© »õ ¸Þ½ÃÁö¸¦ ¸¸µì´Ï´Ù. ¹Þ´Â »ç¶÷ ÁÖ¼Ò¿Í Á¦¸ñ °°Àº ¼Ó¼ºÀ» ¼³Á¤ÇÏ°í ³»¿ëÀ» ¸Þ½ÃÁö °´Ã¼¿¡ »ðÀÔÇÕ´Ï´Ù. ¸¶Áö¸·À¸·Î Transport.send ¸Þ¼Òµå¸¦ È£ÃâÇÏ¿© ¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. Àü¼Û Ŭ·¡½º´Â ¸Þ½ÃÁö¸¦ ´ë»ó ÁÖ¼Ò·Î ¶ó¿ìÆÃÇÏ´Â Àü¼Û ¿¡ÀÌÀüÆ®¸¦ ¸ðµ¨ÈÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â ¸Þ½ÃÁö¸¦ ¹Þ´Â »ç¶÷ ¸ñ·ÏÀ¸·Î º¸³»´Â ¸Þ¼Òµå¸¦ Á¦°øÇÕ´Ï´Ù. ¸Þ½ÃÁö °´Ã¼¿Í ÇÔ²² Transport.send ¸Þ¼Òµå¸¦ È£ÃâÇÏ¸é ´ë»ó ÁÖ¼Ò¿¡ µû¶ó ÀûÀýÇÑ Àü¼Û ¹æ¹ýÀ» ½Äº°ÇÕ´Ï´Ù.
¼¼¼Ç Ŭ·¡½º
¼¼¼Ç Ŭ·¡½º´Â ¿ìÆí È°¼º Ŭ¶óÀ̾ðÆ®¿Í ³×Æ®¿öÅ© »çÀÌÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇÏ´Â Àü¿ª ¹× »ç¿ëÀÚº° ¿ìÆí °ü·Ã µî·Ï Á¤º¸¸¦ Á¤ÀÇÇÕ´Ï´Ù.
JavaMail ½Ã½ºÅÛÀº ¼¼¼Ç °´Ã¼¸¦ »ç¿ëÇÏ¿© ƯÁ¤ µî·Ï Á¤º¸¸¦ ¼³Á¤ÇÏ°í ¾ò½À´Ï´Ù. ¶ÇÇÑ ¼¼¼Ç Ŭ·¡½º´Â µ¥½ºÅ©Å¾ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ °øÀ¯ÇÒ ¼ö ÀÖ´Â ±âº» ÀÎÁõ ¼¼¼Ç °´Ã¼¸¦ Á¦°øÇÕ´Ï´Ù. ¼¼¼Ç Ŭ·¡½º´Â ±¸Ã¼ÀûÀÎ ¸¶Áö¸· Ŭ·¡½ºÀ̸ç ÇÏÀ§ Ŭ·¡½º·Î ³ª´ ¼ö ¾ø½À´Ï´Ù. ¼¼¼Ç Ŭ·¡½º´Â ¶ÇÇÑ Æ¯Á¤ ¾×¼¼½º ¹× Àü¼Û ÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇÏ´Â ÀúÀå¼Ò ¹× Àü¼Û °´Ã¼¿¡ ´ëÇÑ ÆÑÅ丮 ¿ªÇÒÀ» ÇÕ´Ï´Ù. ¼¼¼Ç °´Ã¼¿¡ ´ëÇØ ÀûÀýÇÑ ÆÑÅ丮 ¸Þ¼Òµå¸¦ È£ÃâÇϸé Ŭ¶óÀ̾ðÆ®´Â ƯÁ¤ ÇÁ·ÎÅäÄÝÀ» Áö¿øÇÏ´Â ÀúÀå¼Ò ¹× Àü¼Û °´Ã¼¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
JAF (JavaBeans Activation Framework) Á¤º¸
JavaMailÀº ¸Þ½ÃÁö µ¥ÀÌÅ͸¦ ĸ½¶ÈÇÏ°í ÀÌ µ¥ÀÌÅÍ¿Í »óÈ£ ÀÛ¿ëÇÒ ¸í·ÉÀ» ó¸®Çϱâ À§ÇØ JAF (JavaBeans Activation Framework)¸¦ »ç¿ëÇÕ´Ï´Ù. ¸Þ½ÃÁö¿ÍÀÇ »óÈ£ ÀÛ¿ëÀº JavaMail API°¡ Á¦°øÇÏÁö ¾Ê´Â JAF ÀÎ½Ä JavaBeans¸¦ ÅëÇØ ÀÌ·ç¾îÁ®¾ß ÇÕ´Ï´Ù.
JavaBeans Activation Framework Ç¥ÁØ È®ÀåÀ» ÅëÇØ Java ±â¼úÀ» »ç¿ëÇÏ´Â °³¹ßÀڴ ǥÁØ ¼ºñ½º¸¦ ÀÌ¿ëÇÏ¿© ÀÓÀÇ µ¥ÀÌÅÍ ºÎºÐÀÇ À¯ÇüÀ» °áÁ¤ÇÏ°í ÀÌ¿¡ ´ëÇÑ ¾×¼¼½º¸¦ ĸ½¶ÈÇÏ¿© »ç¿ë °¡´ÉÇÑ ÀÛ¾÷À» ¾Ë¾Æ³»¸ç ÀÌ·¯ÇÑ ÀÛ¾÷À» ¼öÇàÇϱâ À§ÇØ ÀûÀýÇÑ BeanÀ» ÀνºÅϽºÈÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ºê¶ó¿ìÀú¿¡¼ JPEG À̹ÌÁö¸¦ °¡Á®¿Â °æ¿ì ÀÌ ÇÁ·¹ÀÓ¿öÅ©´Â ºê¶ó¿ìÀú°¡ ÇØ´ç µ¥ÀÌÅÍ ½ºÆ®¸²À» ÇØ´ç À¯ÇüÀÇ JPEG À̹ÌÁö·Î ½Äº°ÇÒ ¼ö ÀÖ°Ô ÇØÁÖ¸ç ºê¶ó¿ìÀú´Â ±× À̹ÌÁö¸¦ Á¶ÀÛÇϰųª º¼ ¼ö ÀÖ´Â °´Ã¼¸¦ ã¾Æ ÀνºÅϽºÈÇÒ ¼ö ÀÖ½À´Ï´Ù.
JavaBeans Activation Framework API´Â ´Ù¾çÇÑ MIME µ¥ÀÌÅÍ À¯ÇüÀ» Áö¿øÇÕ´Ï´Ù. JavaMail API´Â ´ÙÀ½ Ç¥¿¡¼ ¼³¸íÇÏ´Â Java ÇÁ·Î±×·¡¹Ö ¾ð¾î À¯Çü¿¡ ÇØ´çÇÏ´Â ´ÙÀ½ MIME µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇÑ javax.activation.DataContentHandlers¸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.
JavaBeans Activation Framework´Â MIME µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇÑ Áö¿øÀ» Java Ç÷§Æû¿¡ ÅëÇÕÇÕ´Ï´Ù. MIME ¹ÙÀÌÆ® ½ºÆ®¸²Àº javax.activation.DataContentHandlerobjects¸¦ »ç¿ëÇÏ¿© Java ÇÁ·Î±×·¡¹Ö ¾ð¾î °´Ã¼¿Í »óÈ£ º¯È¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. JavaBeans ±¸¼º ¿ä¼Ò¿¡ ´ëÇØ µ¥ÀÌÅÍ º¸±â³ª ÆíÁý °°Àº MIME µ¥ÀÌÅÍ¿¡ ´ëÇÑ ÀÛ¾÷À» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ JavaBeans Activation Framework´Â ÆÄÀÏ À̸§ È®ÀåÀÚ¸¦ MIME À¯Çü¿¡ ¸ÅÇÎÇÒ ¼ö ÀÖ´Â ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÕ´Ï´Ù. JavaMail API´Â JavaBeans Activation Framework¸¦ »ç¿ëÇÏ¿© ÀüÀÚ ¿ìÆí ¸Þ½ÃÁö¿¡ Æ÷ÇÔµÈ µ¥ÀÌÅ͸¦ ó¸®ÇÕ´Ï´Ù. ÀüÀÚ ¿ìÆíÀ» º¹ÀâÇÏ°Ô »ç¿ëÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ °æ¿ì JavaBeans Activation Framework¸¦ Á÷Á¢ »ç¿ëÇØ¾ß ÇÒ ¼öµµ ÀÖÁö¸¸ ÀÏ¹Ý J2EE ÀÀ¿ë ÇÁ·Î±×·¥Àº JavaBeans Activation Framework¸¦ Á÷Á¢ »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.
JavaMail ±¸¼º ¸Å°³ º¯¼ö Á¤º¸
´ÙÀ½ ±¸¼º ¸Å°³ º¯¼ö´Â Sun ONE Application ServerÀÇ JavaMail ÀÚ¿ø¿¡¼ »ç¿ëµË´Ï´Ù. ÀÌ·¯ÇÑ ±¸¼º ¸Å°³ º¯¼ö´Â À̸§, °ª ½ÖÀ¸·Î ÀÌ·ç¾îÁö¸ç server.xml ÆÄÀÏÀÇ mail-resource ¿ä¼Ò¿¡¼ ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù.
- JNDI À̸§
JNDI À̸§Àº ÀÌ ¿ìÆí ÀÚ¿øÀÌ J2EE ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ÂüÁ¶ÇÏ´Â µ¥ »ç¿ëÇÏ´Â À̸§À» ÁöÁ¤ÇÕ´Ï´Ù.
- Enabled
enabled ±¸¼º ¸Å°³ º¯¼ö´Â ÀÌ ¿ìÆí ÀÚ¿øÀ» JNDI Æ®¸®¿¡ °Ô½ÃÇÏ¿© ÂüÁ¶ÇÒ ¼ö ÀÖ´ÂÁö ¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. J2EE ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ºñÈ°¼ºÈµÈ ÀÚ¿øÀ» ÂüÁ¶Çϸé NameNotFoundException ¿¹¿Ü¸¦ ¹Þ°Ô µË´Ï´Ù.
- store-protocol
±âº» ¸Þ½ÃÁö ¾×¼¼½º ÇÁ·ÎÅäÄÝÀ» ÁöÁ¤ÇÕ´Ï´Ù. Session.getStore() ¸Þ¼Òµå´Â ÀÌ ÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇÏ´Â ÀúÀå¼Ò °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù. Ŭ¶óÀ̾ðÆ®´Â ÀÌ µî·Ï Á¤º¸¸¦ ¹«½ÃÇÏ°í Session.getStore (String protocol) ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÅäÄÝÀ» ¸í½ÃÀûÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
- store-protocol Ŭ·¡½º
À§¿¡ ÁöÁ¤µÈ ÀúÀå¼Ò ÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇϴ Ŭ·¡½º À̸§À» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ Å¬·¡½ºÀÇ ±âº»°ªÀº com.sun.mail.imap.IMAPStoreÀÔ´Ï´Ù.
- transport-protocol
±âº» Àü¼Û ÇÁ·ÎÅäÄÝÀ» ÁöÁ¤ÇÕ´Ï´Ù. Session.getTransport() ¸Þ¼Òµå´Â ÀÌ ÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇÏ´Â Àü¼Û °´Ã¼¸¦ ¹ÝȯÇÕ´Ï´Ù. Ŭ¶óÀ̾ðÆ®´Â ÀÌ µî·Ï Á¤º¸¸¦ ¹«½ÃÇÏ°í Session.getTransport (String protocol) ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÅäÄÝÀ» ¸í½ÃÀûÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
- transport-protocol Ŭ·¡½º
À§¿¡¼ ÁöÁ¤ÇÑ Àü¼Û ÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇϴ Ŭ·¡½º À̸§À» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ Å¬·¡½ºÀÇ ±âº»°ªÀº com.sun.mail.smtp.SMTPTransportÀÔ´Ï´Ù.
- host
±âº» ¸ÞÀÏ ¼¹ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÇÁ·ÎÅäÄÝ °ü·Ã È£½ºÆ® µî·Ï Á¤º¸°¡ ¾ø´Â °æ¿ì ÀúÀå¼Ò ¹× Àü¼Û °´Ã¼ÀÇ ¿¬°á ¸Þ¼Òµå´Â ÀÌ µî·Ï Á¤º¸¸¦ »ç¿ëÇÏ¿© ´ë»ó È£½ºÆ®¸¦ ã½À´Ï´Ù.
- user
¸ÞÀÏ ¼¹ö¿¡ ¿¬°áÇÒ ¶§ ÀÔ·ÂÇÒ »ç¿ëÀÚ À̸§À» ÁöÁ¤ÇÕ´Ï´Ù. ÇÁ·ÎÅäÄÝ °ü·Ã »ç¿ëÀÚ À̸§ µî·Ï Á¤º¸°¡ ¾ø´Â °æ¿ì ÀúÀå¼Ò ¹× Àü¼Û °´Ã¼ÀÇ ¿¬°á ¸Þ¼Òµå´Â ÀÌ µî·Ï Á¤º¸¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ À̸§À» ¾ò½À´Ï´Ù.
- from
ÇöÀç »ç¿ëÀÚÀÇ ¹Ý¼Û ÁÖ¼Ò¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÇöÀç »ç¿ëÀÚÀÇ ÀüÀÚ ¿ìÆí ÁÖ¼Ò¸¦ ÁöÁ¤Çϱâ À§ÇØ InternetAddress.getLocalAddress ¸Þ¼Òµå¿¡¼ »ç¿ëÇÕ´Ï´Ù.
- debug
Ãʱ⠵ð¹ö±× ¸ðµå¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ µî·Ï Á¤º¸¸¦ true·Î ¼³Á¤ÇÏ¸é µð¹ö±× ¸ðµå°¡ ¼³Á¤µÇ¸ç false·Î ¼³Á¤ÇÏ¸é µð¹ö±× ¸ðµå°¡ ÇØÁ¦µË´Ï´Ù.
- mail-<protocol>-host
ÇÁ·ÎÅäÄÝ °ü·Ã ±âº» ¸ÞÀÏ ¼¹ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. µû¶ó¼ mail.host µî·Ï Á¤º¸´Â ¹«½ÃµË´Ï´Ù. store-protocol ¼Ó¼ºÀÇ °ª¿¡ µû¶ó ÀÌ µî·Ï Á¤º¸¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. store-protocolÀÇ Imap ¶Ç´Â POP °ª¿¡ ´ëÇؼ´Â mail.imap.host³ª mail.pop3.host¶õ À̸§À» °¢°¢ »ç¿ëÇÏ¿© µî·Ï Á¤º¸¸¦ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. ƯÁ¤ µî·Ï Á¤º¸ÀÇ °ªÀº ¿ìÆí ½Ã½ºÅÛ ±¸¼º¿¡ ÀûÇÕÇÏ°Ô ¼³Á¤µÇ¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, store-protocolÀ» IMAP·Î ¼³Á¤ÇÏ¸é µî·Ï Á¤º¸ À̸§ mail-imap-host´Â spaceduck.acme.comÀ̶ó´Â °ªÀ» °¡Áú °ÍÀÔ´Ï´Ù.
- mail-<protocol>-user
¸ÞÀÏ ¼¹ö¿¡ ¿¬°áÇϱâ À§ÇÑ ÇÁ·ÎÅäÄÝ °ü·Ã ±âº» »ç¿ëÀÚ À̸§À» ÁöÁ¤ÇÕ´Ï´Ù. µû¶ó¼ mail.user µî·Ï Á¤º¸´Â ¹«½ÃµË´Ï´Ù. ¼±ÅÃÇÑ store-protocol ¼Ó¼º¿¡ µû¶ó ÀÌ µî·Ï Á¤º¸´Â mail.imap.user³ª mail.pop3.user°¡ µÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, store-protocolÀ» IMAP·Î ¼³Á¤ÇÏ¸é µî·Ï Á¤º¸ À̸§ mail-imap-user´Â fredbloggs¶ó´Â °ªÀ» °¡Áú °ÍÀÔ´Ï´Ù.
JavaMail ¼¼¼Ç ÂüÁ¶¿ë J2EE ¹èÆ÷ ¼³¸íÀÚ
JavaMail ÀÚ¿øÀ» ¼¹ö¿¡ µî·ÏÇϸé JNDI Á¶È¸¸¦ »ç¿ëÇÏ¿© ¸ðµç J2EE ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò¿¡¼ ÇØ´ç ÀÚ¿øÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¿ø °ü¸®ÀÚ ¿¬°á ÆÑÅ丮¸¦ ÂüÁ¶ÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» ¹èÆ÷ÇÏ·Á¸é ±¸¼º ¿ä¼Ò °ø±ÞÀÚ°¡ Ç¥ÁØ J2EE 1.3 ¹èÆ÷ ¼³¸íÀÚ¿¡¼ ¸ðµç ÀÚ¿ø °ü¸®ÀÚ ¿¬°á ÆÑÅ丮 ÂüÁ¶¸¦ ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù.
JavaMail ÂüÁ¶¿¡ ÇÊ¿äÇÑ ¸ðµç J2EE1.3 ¼³¸íÀÚ ¿ä¼Ò¸¦ ¾Æ·¡¿¡¼ ¼³¸íÇÕ´Ï´Ù.
<resource-ref>
<description>
¿ìÆíÀ» º¸³»´Â µ¥ »ç¿ëÇÏ´Â JavaMail ÀÚ¿ø
</description>
<res-ref-name>mail/MyMailSession</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
Sun ONE Application Server ¹èÆ÷ ¼³¸íÀÚÀÇ Ç׸ñ
¿ìÆí ÀÚ¿øÀ» ÂüÁ¶ÇÏ´Â ¹èÆ÷µÈ °¢ ±¸¼º ¿ä¼Ò¿¡ ´ëÇØ ¹èÆ÷ÀÚ´Â ±¸¼º ¿ä¼Ò¿¡¼ »ç¿ëµÇ´Â ÀÚ¿ø À̸§À» µ¥ÀÌÅÍ ¼Ò½º°¡ À̸§ ÁöÁ¤ ¼ºñ½º¿¡ µî·ÏÇÑ ½ÇÁ¦ jndi À̸§¿¡ ¸ÅÇÎÇØ¾ß ÇÕ´Ï´Ù. ¹èÆ÷ µµ±¸´Â ¹èÆ÷ÀÚ°¡ ÀÌ ¸ÅÇÎÀ» ½±°Ô ÇÒ ¼ö ÀÖµµ·Ï µµ¿òÀ» ÁÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌ ¸ÅÇÎÀº Sun ONE Application Server °ü·Ã xml¿¡ µî·ÏµÇ¾î ÀÖ½À´Ï´Ù. ¸ÅÇÎÀ» Æ÷ÇÔÇÏ´Â Sun ONE Application ServerÀÇ Æ¯Á¤ XML ´ÜÆíÀÌ ¾Æ·¡¿¡ ³ª¿Í ÀÖ½À´Ï´Ù.
<resource-ref>
<res-ref-name>mail/MyMailSession</res-ref-name>
<jndi-name>mail/Session</jndi-name>
</resource-ref>
»õ JavaMail ¼¼¼Ç ¸¸µé±â
°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© JavaMail ¼¼¼ÇÀ» ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. »õ JavaMail ¼¼¼ÇÀ» ¸¸µé°í ±¸¼ºÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇÕ´Ï´Ù.
- °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿ÞÂÊ Ã¢¿¡¼ »õ JavaMail ¼¼¼ÇÀ» ¸¸µé Sun ONE Application Server ÀνºÅϽº¸¦ È®ÀåÇÕ´Ï´Ù.
- "JavaMail ¼¼¼Ç"À» ´©¸¨´Ï´Ù. °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿À¸¥ÂÊ Ã¢¿¡ ÀÖ´Â ±×¸² JavaMail ¼¼¼Ç ±¸¼º¿¡ Ç¥½ÃµÈ ´ÙÀ½ âÀÌ Ç¥½ÃµË´Ï´Ù.
   JavaMail ¼¼¼Ç ±¸¼º
- ¸¸µé°í ÀÖ´Â JavaMail ¼¼¼Ç¿¡ ´ëÇÑ JNDI À̸§À» "JNDI À̸§" ÅؽºÆ® Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù. JavaMail ÀÚ¿øÀ» ¼¹ö¿¡ µî·ÏÇϸé JNDI Á¶È¸¸¦ »ç¿ëÇÏ¿© ¸ðµç J2EE ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò¿¡¼ ÇØ´ç ÀÚ¿øÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.
- ±âº» ¸ÞÀÏ ¼¹öÀÇ DNS À̸§À» "¸ÞÀÏ È£½ºÆ®" ÅؽºÆ® Çʵ忡 ÁöÁ¤ÇÕ´Ï´Ù. ÇÁ·ÎÅäÄÝ °ü·Ã È£½ºÆ® µî·Ï Á¤º¸°¡ ¾ø´Â °æ¿ì ÀúÀå¼Ò ¹× Àü¼Û °´Ã¼ÀÇ ¿¬°á ¸Þ¼Òµå´Â ÀÌ µî·Ï Á¤º¸¸¦ »ç¿ëÇÏ¿© ´ë»ó È£½ºÆ®¸¦ ã½À´Ï´Ù.
- ¸ÞÀÏ ¼¹ö¿¡ ¿¬°áÇÒ ¶§ Á¦°øÇÒ »ç¿ëÀÚ À̸§À» "±âº» »ç¿ëÀÚ" ÅؽºÆ® Çʵ忡 ÁöÁ¤ÇÕ´Ï´Ù. ÇÁ·ÎÅäÄÝ °ü·Ã »ç¿ëÀÚ À̸§ µî·Ï Á¤º¸°¡ ¾ø´Â °æ¿ì ÀúÀå¼Ò ¹× Àü¼Û °´Ã¼ÀÇ ¿¬°á ¸Þ¼Òµå´Â ÀÌ µî·Ï Á¤º¸¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ À̸§À» °¡Á®¿É´Ï´Ù.
- ÇöÀç »ç¿ëÀÚÀÇ ±âº» ¹Ý¼Û ÁÖ¼Ò¸¦ "±âº» ¹Ý¼Û ÁÖ¼Ò"¿¡ ÁöÁ¤ÇÕ´Ï´Ù. ±âº» ÁÖ¼ÒÀÇ Çü½ÄÀº username@hostÀ̾î¾ß ÇÕ´Ï´Ù.
- "¼³¸í" Çʵ忡 ÀÌ JavaMail ¼¼¼Ç¿¡ ´ëÇÑ ¼³¸íÀ» ÀÔ·ÂÇÕ´Ï´Ù.
- ¸¸µç JavaMail ¼¼¼ÇÀ» È°¼ºÈÇÏ·Á¸é "JavaMail ¼¼¼Ç »ç¿ë" È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.
- ±¸¼ºÇÑ »õ JavaMail ¼¼¼ÇÀ» ÀúÀåÇÏ·Á¸é "È®ÀÎ"À» ´©¸¨´Ï´Ù.
°í±Þ ÀÚ¿ø µî·Ï Á¤º¸ ±¸¼º
°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© »õ JavaMail ¼¼¼Ç¿¡ ´ëÇÑ ¸î °¡Áö Ãß°¡ µî·Ï Á¤º¸¸¦ ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. µî·Ï Á¤º¸ À̸§°ú °ª ½ÖÀº »ç¿ë ÁßÀÎ ¿ìÆí ÇÁ·ÎÅäÄÝ¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. ÀÌ·¯ÇÑ µî·Ï Á¤º¸¸¦ server.xml ÆÄÀÏ¿¡¼ Á÷Á¢ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
Ãß°¡ µî·Ï Á¤º¸¸¦ ±¸¼ºÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇÕ´Ï´Ù.
- °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿ÞÂÊ Ã¢¿¡¼ JavaMail ¼¼¼ÇÀ» ¼öÁ¤ÇÒ Sun ONE Application Server ÀνºÅϽº¸¦ È®ÀåÇÕ´Ï´Ù.
- "JavaMail ¼¼¼Ç"À» ´©¸¨´Ï´Ù. »õ JavaMail ¼¼¼Ç ¸¸µé±â¿¡¼ ¼³¸íÇÑ ÁÖ¿ä ±¸¼º ¼½¼Ç ¾Æ·¡¿¡ ÀÖ´Â °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿À¸¥ÂÊ Ã¢¿¡ ±×¸² JavaMail ¼¼¼ÇÀÇ Ãß°¡ ÀÚ¿ø ±¸¼º¿¡ ÀÖ´Â ´ë·Î ´ÙÀ½ âÀÌ Ç¥½ÃµË´Ï´Ù.
   JavaMail ¼¼¼ÇÀÇ Ãß°¡ ÀÚ¿ø ±¸¼º
- ÀÌ·¯ÇÑ Æ¯Á¤ JavaMail ¼¼¼Ç¿¡ »ç¿ëÇÒ ÀúÀå¼Ò ÇÁ·ÎÅäÄÝ(¿¹: POP3, IMAP)À» "ÀúÀå¼Ò ÇÁ·ÎÅäÄÝ" ÅؽºÆ® Çʵ忡 ÁöÁ¤ÇÕ´Ï´Ù.
- Ç¥½ÃÇÑ ÀúÀå¼Ò ÇÁ·ÎÅäÄÝÀÇ Å¬·¡½º À̸§À» ¿¹¿¡ Ç¥½ÃµÈ ´ë·Î "ÀúÀå¼Ò ÇÁ·ÎÅäÄÝ Å¬·¡½º" ÅؽºÆ® Çʵ忡 ÁöÁ¤ÇÕ´Ï´Ù.
- ÀÌ·¯ÇÑ JavaMailÀÇ Æ¯Á¤ ¼¼¼Ç¿¡ »ç¿ëÇÒ Àü¼Û ÇÁ·ÎÅäÄÝ(¿¹: SMTP)À» "Àü¼Û ÇÁ·ÎÅäÄÝ" ÅؽºÆ® Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù.
- ÀÌ ¼¼¼Ç¿¡ ´ëÇØ Ç¥½ÃÇÑ Àü¼Û ÇÁ·ÎÅäÄÝÀÇ Å¬·¡½º À̸§À» À§ÀÇ ¿¹¿¡¼ Ç¥½ÃÇÑ ´ë·Î "Àü¼Û ÇÁ·ÎÅäÄÝ Å¬·¡½º" ÅؽºÆ® Çʵ忡 ÁöÁ¤ÇÕ´Ï´Ù.
- ÀÌ·¯ÇÑ JavaMailÀÇ Æ¯Á¤ ¼¼¼Ç µð¹ö±ëÀ» È°¼ºÈÇÏ·Á¸é "µð¹ö±× »ç¿ë" È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù. ÀÌ È®ÀζõÀ» È°¼ºÈÇÏ¸é µð¹ö±× ¸ðµå°¡ ¼³Á¤µË´Ï´Ù.
- Ãß°¡ µî·Ï Á¤º¸ ±¸¼ºÀ» ÀúÀåÇÏ·Á¸é "È®ÀÎ"À» ´©¸¨´Ï´Ù.
¿ìÆí ÀÚ¿ø ±¸¼º¿¡ ´ëÇÑ Àüü ¿¹°¡ ¾Æ·¡¿¡ ³ª¿Í ÀÖ½À´Ï´Ù.
<mail-resource
jndi-name = "mail/Session"
enabled = "true"
store-protocol = "imap"
store-protocol-class = "com.sun.mail.imap.IMAPStore"
transport-protocol = "smtp"
transport-protocol-class = "com.sun.mail.smtp.SMTPTransport"
host = "gopostal.acme.com"
user = "kingkong"
from = "kingkong@acme.com"
debug = "false">
<property name = "mail-imap-host" value = "spaceduck.acme.com"/>
<property name = "mail-imap-user" value = "fredbloggs"/>
</mail-resource>