Sun ONE ·Î°í     ÀÌÀü      ¸ñÂ÷      »öÀÎ      ´ÙÀ½     
Sun ONE Application Server 7, Update 1 °ü¸®ÀÚ ¼³¸í¼­



Æ®·£Àè¼Ç ¼­ºñ½º »ç¿ë

Æ®·£Àè¼ÇÀº ºñÁî´Ï½ºÀÇ ÅëÇÕµÈ ÀϺÎÀÔ´Ï´Ù. ÀÏ¹Ý ºñÁî´Ï½º Æ®·£Àè¼ÇÀº µÎ °³ ÀÌ»óÀÇ °ü·Ã ºÎºÐ »çÀÌ ÀÚ»ê À̵¿°ú °ü·ÃµÇ¾î ÀÖ½À´Ï´Ù. Á¤È®¼ºÀ» ¿äÇÏ´Â ±â·ÏÀº º¸Åë Çϳª ÀÌ»óÀÇ µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåµË´Ï´Ù. ÀÌ Á¤º¸´Â ºñÁî´Ï½º ÀÛ¾÷¿¡ ²À ÇÊ¿äÇϱ⠶§¹®¿¡ Ç×»ó À¯È¿ÇÏ°í, ÇöÀ缺À» °¡Áö°í, ½Å·ÚÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. Ãʺ¸ ÇÁ·Î±×·¡¸Ó¿¡°Ô´Â Æ®·£Àè¼Ç 󸮰¡ ¾î·Á¿ï ¼ö ÀÖ½À´Ï´Ù. J2EE Ç÷§ÆûÀº Á¾¼Ó °¡´ÉÇÑ Æ®·£Àè¼Ç ó¸® ÀÀ¿ë ÇÁ·Î±×·¥ Àü°³¸¦ ½±°Ô ÇØÁÖ´Â ¿©·¯ Ãß»óÀû °³³äÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ Àå¿¡¼­´Â Sun ONE Application ServerÀÇ J2EE Æ®·£Àè¼Ç ¹× Æ®·£Àè¼Ç Áö¿øÀ» ¼³¸íÇÕ´Ï´Ù.

ÀÌ Àå¿¡¼­´Â ÀϹÝÀûÀ¸·Î Java Æ®·£Àè¼Ç, ±¸Ã¼ÀûÀ¸·Î´Â Sun ONE Application Server¿¡ Æ÷ÇԵǾî ÀÖ´Â Æ®·£Àè¼Ç Áö¿ø¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.

ÀÌ Àå¿¡¼­´Â ´ÙÀ½ ³»¿ëÀ» ¼³¸íÇÕ´Ï´Ù.

Æ®·£Àè¼Ç Á¤º¸

ºñÁî´Ï½º Æ®·£Àè¼ÇÀ» ¿¡¹Ä·¹ÀÌÆ®ÇÏ·Á¸é ÇÁ·Î±×·¥ÀÌ ¿©·¯ ´Ü°è¸¦ ¼öÇàÇØ¾ß ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, À繫 ÇÁ·Î±×·¥ÀÌ ´ÙÀ½ ÀÇ»ç Äڵ忡 ³ª¿­µÈ ´Ü°è¸¦ ¼öÇàÇϸé ÀÚ±ÝÀ» ¼öÇ¥ °èÁ¿¡¼­ ¿¹±Ý °èÁ·ΠÀÌüÇÒ ¼ö ÀÖ½À´Ï´Ù.

begin transaction

debit checking account

credit savings account

update history log

commit transaction

¾ÕÀÇ ÀÇ»ç Äڵ忡¼­ begin ¹× commit ¸í·ÉÀº Æ®·£Àè¼Ç °æ°è¸¦ Ç¥½ÃÇÕ´Ï´Ù. Æ®·£Àè¼ÇÀ» ¿Ï·áÇÏ·Á¸é ¼¼ ´Ü°è°¡ ¸ðµÎ ¿Ï·áµÇ¾î¾ß ÇÕ´Ï´Ù. ¼¼ ´Ü°è°¡ ¸ðµÎ ¿Ï·áµÇÁö ¸øÇÏ¸é µ¥ÀÌÅÍ ÅëÇÕÀÌ ¼Õ»óµÉ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ º¸ÀåÀ» ¿øÀÚ¼ºÀ̶ó°í ÇÕ´Ï´Ù. Æ®·£Àè¼ÇÀº commit ¶Ç´Â rollback ¸í·ÉÀ¸·Î ³¡³³´Ï´Ù. Æ®·£Àè¼ÇÀ» ¿Ï°áÇϸé Æ®·£Àè¼Ç °æ°è ³»ÀÇ ¸í·ÉÀ¸·Î ¼öÇàÇÑ ¸ðµç ¼öÁ¤ÀÌ ÀúÀå ¹× Áö¼ÓµË´Ï´Ù. º¯°æÀº ¿µ±¸ÀûÀ̸ç ÀÌÈÄ ½Ã½ºÅÛ Àå¾Ö°¡ ÀϾµµ ±×´ë·Î À¯ÁöµË´Ï´Ù. Æ®·£Àè¼Ç ³»ÀÇ ¸í·É Áß Çϳª¶óµµ ½ÇÆÐÇϸé Æ®·£Àè¼Ç Àüü°¡ ·Ñ¹éÇϸç, ±× ¶§±îÁö Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇàµÈ ¸ðµç ¸í·ÉÀº Ãë¼ÒµË´Ï´Ù. ¿¹¸¦ µé¾î, ÀÇ»ç ÄÚµåÀÇ credit ´Ü°è Áß µð½ºÅ© µå¶óÀ̺꿡 ¿À·ù°¡ ¹ß»ýÇϸé, Æ®·£Àè¼ÇÀº ·Ñ¹éµÇ°í debit ¸í·ÉÀ¸·Î ¼öÇàµÇ¾ú´ø µ¥ÀÌÅÍ º¯°æµµ ¸ðµÎ Ãë¼ÒµË´Ï´Ù.

Æ®·£Àè¼ÇÀÌ ½ÇÆÐÇصµ Æ®·£Àè¼Ç °èÁ¤ Àܾ×Àº ¿©ÀüÈ÷ À¯ÁöµÇ±â ¶§¹®¿¡ µ¥ÀÌÅÍ ÅëÇÕÀÌ ¼Õ»óµÇÁö ¾Ê½À´Ï´Ù. Æ®·£Àè¼Ç ÀÛµ¿ÀÇ ÀÌ·± Ãø¸éÀ» Æ®·£Àè¼Ç ÀÏ°ü¼ºÀ̶ó ÇÕ´Ï´Ù.

Æ®·£Àè¼Ç ¼­ºñ½º´Â °í¸³È­µµ Á¦°øÇÕ´Ï´Ù. ÀÌ°ÍÀº Æ®·£Àè¼ÇÀÌ ¿Ï°á ¶Ç´Â ·Ñ¹éµÇ±â Àü±îÁö´Â Æ®·£Àè¼Ç ³» ±¸¹®À» ´Ù¸¥ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ °üÂûÇÒ ¼ö ¾øÀ½À» ÀǹÌÇÕ´Ï´Ù. ÀÏ´Ü Æ®·£Àè¼ÇÀÌ ¿Ï°áµÇ¸é ÀÌ ¿Ï°áµÈ Æ®·£Àè¼ÇÀº ÀÀ¿ë ÇÁ·Î±×·¥ ¹× ½º·¹µå°¡ ¾ÈÀüÇÏ°Ô °üÂûÇÒ ¼ö ÀÖ½À´Ï´Ù.

J2EE Æ®·£Àè¼Ç

J2EEÀÇ Æ®·£Àè¼Ç 󸮴 Ʈ·£Àè¼Ç °ü¸®ÀÚ, ÀÀ¿ë ÇÁ·Î±×·¥ ¼­¹ö, ÀÚ¿ø °ü¸®ÀÚ, ÀÚ¿ø ¾î´ðÅÍ ¹× »ç¿ëÀÚ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ´Ù¼¸ Âü°¡ÀÚ¿¡ ÀÇÇØ ¼öÇàµË´Ï´Ù. °¢ ¿£Æ¼Æ¼´Â ´ÙÀ½¿¡¼­ ¼³¸íÇÏ´Â ¿©·¯ API ¹× ±â´ÉÀ» ±¸ÇöÇÏ¿© ½Å·ÚÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ¸·Î Æ®·£Àè¼ÇÀ» ó¸®ÇÕ´Ï´Ù.

  • Æ®·£Àè¼Ç °ü¸®ÀÚ´Â Æ®·£Àè¼Ç ±¸ºÐ, Æ®·£Àè¼Ç ÀÚ¿ø °ü¸®, µ¿±âÈ­ ¹× Æ®·£Àè¼Ç ÄÁÅؽºÆ® ÀüÆÄ Áö¿ø¿¡ ÇÊ¿äÇÑ ¼­ºñ½º ¹× °ü¸® ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù.
  • ÀÀ¿ë ÇÁ·Î±×·¥ ¼­¹ö´Â Æ®·£Àè¼Ç »óÅ °ü¸® µîÀÇ ÀÀ¿ë ÇÁ·Î±×·¥ ·±Å¸ÀÓ È¯°æ Áö¿ø¿¡ ÇÊ¿äÇÑ ±â¹Ý ±¸Á¶¸¦ Á¦°øÇÕ´Ï´Ù.
  • ÀÚ¿ø °ü¸®ÀÚ(ÀÚ¿ø ¾î´ðÅ͸¦ ÅëÇÑ)´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡°Ô ÀÚ¿ø¿¡ ´ëÇÑ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. ÀÚ¿ø °ü¸®ÀÚ´Â Æ®·£Àè¼Ç °ü¸®ÀÚ°¡ Æ®·£Àè¼Ç ¿¬°á, Æ®·£Àè¼Ç ¿Ï·á ¹× º¹±¸ ÀÛ¾÷°ú Åë½ÅÇÒ ¶§ »ç¿ëÇÏ´Â Æ®·£Àè¼Ç ÀÚ¿ø ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ¿© ºÐ»êµÈ Æ®·£Àè¼Ç¿¡ Âü¿©ÇÕ´Ï´Ù. ÀÌ·± ÀÚ¿ø °ü¸®ÀÚÀÇ ¿¹·Î °ü°èÇü µ¥ÀÌÅͺ£À̽º ¼­¹ö¸¦ µé ¼ö ÀÖ½À´Ï´Ù.
  • ÀÚ¿ø ¾î´ðÅÍ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ¼­¹ö ¶Ç´Â Ŭ¶óÀ̾ðÆ®°¡ ÀÚ¿ø °ü¸®ÀÚ¿ÍÀÇ ¿¬°á¿¡ »ç¿ëÇÏ´Â ½Ã½ºÅÛ ¼öÁØ ¼ÒÇÁÆ®¿þ¾î ¶óÀ̺귯¸®ÀÔ´Ï´Ù. ÀÚ¿ø ¾î´ðÅÍ´Â ÀϹÝÀûÀ¸·Î ÀÚ¿ø °ü¸®ÀÚ¸¶´Ù µû·Î ÁöÁ¤µË´Ï´Ù. ÀÚ¿ø ¾î´ðÅÍ´Â ¶óÀ̺귯¸®·Î »ç¿ë °¡´ÉÇϸç ÀÌ°ÍÀ» »ç¿ëÇϴ Ŭ¶óÀ̾ðÆ® ÁÖ¼Ò °ø°£ ³»¿¡¼­ »ç¿ëµË´Ï´Ù. ÀÌ·± ÀÚ¿ø ¾î´ðÅÍÀÇ ¿¹·Î´Â JDBC µå¶óÀ̹ö°¡ ÀÖ½À´Ï´Ù.
  • J2EE ÀÀ¿ë ÇÁ·Î±×·¥ ¼­¹ö ȯ°æ¿¡¼­ ÀÛ¾÷Çϱâ À§ÇØ °³¹ßµÈ Æ®·£Àè¼Ç »ç¿ëÀÚ ÀÀ¿ë ÇÁ·Î±×·¥Àº JNDI¸¦ »ç¿ëÇÏ¿© Æ®·£Àè¼Ç µ¥ÀÌÅÍ ¼Ò½º ¹× ¼±ÅÃÀûÀ¸·Î Æ®·£Àè¼Ç °ü¸®ÀÚ¸¦ Á¶È¸ÇÕ´Ï´Ù. EJBÀÇ ¼±¾ðÀû Æ®·£Àè¼Ç ¼Ó¼º ¼³Á¤ ¶Ç´Â ¸í½ÃÀûÀÎ ÇÁ·Î±×·¥Çü Æ®·£Àè¼Ç ±¸ºÐÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÚ¿ø °ü¸®ÀÚ¿Í ÀÚ¿ø ¾î´ðÅÍ ¿£Æ¼Æ¼´Â ¼­·Î ¹ÐÁ¢ÇÏ°Ô ¿¬°üµÇ¾î À־, ÀÚ¿ø °ü¸®ÀÚ¶ó´Â ¿ë¾î°¡ ÀÚ¿ø ¾î´ðÅÍ¿Í È¥¿ëµÇ´Â °æ¿ìµµ ¸¹½À´Ï´Ù.

Æ®·£Àè¼Ç ÀÚ¿ø °ü¸®ÀÚ

´ÙÀ½ Æ®·£Àè¼Ç ÀÚ¿ø °ü¸®ÀÚ´Â J2EE Æ®·£Àè¼Ç ³»¿¡¼­ Áö¿øµË´Ï´Ù.

µ¥ÀÌÅͺ£À̽º

°¡Àå ÀÚÁÖ Á¢ÇÏ°Ô µÇ´Â J2EE ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ Æ®·£Àè¼Ç ÀÚ¿ø °ü¸®ÀÚ´Â µ¥ÀÌÅͺ£À̽ºÀÔ´Ï´Ù. JDBC´Â J2EE ±¸¼º ¿ä¼Ò°¡ µ¥ÀÌÅͺ£À̽º ¾×¼¼½º¿¡ »ç¿ëÇÏ´Â APIÀÔ´Ï´Ù. µ¥ÀÌÅͺ£À̽º ÀÚ¿øÀº JDBC ÀÚ¿øÀ¸·Î ±¸¼ºµË´Ï´Ù. JDBC ÀÚ¿øÀº ÀÚ¿ø °ü¸®ÀÚ ¶Ç´Â JDBC µå¶óÀ̹ö°¡ °ü¸®ÇÕ´Ï´Ù. JDBC µå¶óÀ̹ö´Â ·ÎÄà Ʈ·£Àè¼Ç ¶Ç´Â Àü¿ª Æ®·£Àè¼Ç ¹× ¶§·Î ·ÎÄà ¹× Àü¿ª Æ®·£Àè¼Ç ¸ðµÎ¿¡ ´ëÇÑ Áö¿øÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.

Sun ONE Application Server´Â ¿©·¯ J2EE ±¸¼º ¿ä¼ÒÀÇ JDBC ¹× Æ®·£Àè¼Ç »ç¿ëÀ» Áö¿øÇÕ´Ï´Ù. JDBC ÀÚ¿øÀÇ µî·Ï ¹× ±¸¼º ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº "JDBC ÀÚ¿ø Á¤º¸"¸¦ ÂüÁ¶ÇϽʽÿÀ. ÀÀ¿ë ÇÁ·Î±×·¥ ¼­¹ö´Â Æ®·£Àè¼Ç ¿¬¼Ó¼º Á¦°ø(Áï ¿©·¯ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò·ÎºÎÅÍ Æ®·£Àè¼Ç ÃʱâÈ­ ¹× µ¥ÀÌÅͺ£À̽º ¾×¼¼½º ¼öÇà)À» ´ã´çÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ¼­ºí¸´ÀÌ Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÏ°í, µ¥ÀÌÅͺ£À̽º¸¦ ¾×¼¼½ºÇÏ°í, µ¿ÀÏÇÑ Æ®·£Àè¼ÇÀÇ ÀϺηΠµ¿ÀÏÇÑ µ¥ÀÌÅͺ£À̽º¸¦ ¾×¼¼½ºÇÏ´Â Enterprise BeanÀ» ºÒ·¯³½ ÈÄ, ¸¶Áö¸·À¸·Î Æ®·£Àè¼ÇÀ» ¿Ï°áÇÒ ¼ö ÀÖ½À´Ï´Ù.

JMS °ø±ÞÀÚ

JMS´Â Java Message ServiceÀÇ ¾àÀÚÀÔ´Ï´Ù. JMS °ø±ÞÀÚ´Â ¸Þ½ÃÁö ºê·ÎÄ¿ ¼­ºñ½º¸¦ ÀǹÌÇÏ´Â J2EE ¿ë¾îÀÔ´Ï´Ù. JMS API´Â ÀÀ¿ë ÇÁ·Î±×·¥ »çÀÌ¿¡ ½Å·ÚÇÒ ¼ö ÀÖ´Â Æ®·£Àè¼Ç ¹æ½ÄÀÇ ±³È¯À» Á¦°øÇÕ´Ï´Ù. Æ®·£Àè¼Ç JMS µ¥ÀÌÅÍ ¼Ò½º Áö¿øÀº J2EEÀÇ Çʼö ±â´ÉÀÔ´Ï´Ù. JMS ÀÚ¿ø ¹× JDBC ÀÚ¿øÀÌ ÇÔ²² µ¿ÀÏÇÑ Æ®·£Àè¼Ç¿¡ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

Sun ONE Application Server´Â Sun ONE ¸Þ½ÃÁö ´ë±â¿­, ¿ÏÀüÇÑ ±â´ÉÀÇ JMS °ø±ÞÀÚ ¹× ÇØ´ç Æ®·£Àè¼Ç ÀÚ¿ø °ü¸®ÀÚ¿¡ ÅëÇյ˴ϴÙ. ÀÌ·¸°Ô Çϸé Sun ONE Application Server°¡ ¼­ºí¸´, JSP ÆäÀÌÁö ¹× Enterprise Bean¿¡¼­ Æ®·£Àè¼Ç JMS¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. Sun ONE Application Server¿¡ Ÿ»ç JMS °ø±ÞÀÚ¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº "JMS ¼­ºñ½º »ç¿ë"À» ÂüÁ¶ÇϽʽÿÀ.

J2EE Ä¿³ØÅÍ

Sun ONE Application Server´Â Æ®·£Àè¼Ç ÀÚ¿ø °ü¸®ÀÚ·Î XATransaction ¸ðµå¸¦ »ç¿ëÇÏ´Â ÀÚ¿ø ¾î´ðÅ͸¦ Áö¿øÇÕ´Ï´Ù. Ç÷§Æû¿¡¼­´Â ¼­ºí¸´, JSP ÆäÀÌÁö ¹× Enterprise Bean¿¡¼­ ÀÚ¿ø ¾î´ðÅÍ·Î Æ®·£Àè¼Ç ¾×¼¼½ºÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. ´ÜÀÏ Æ®·£Àè¼Ç ³»ÀÇ ¿©·¯ ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò¿¡¼­ ÀÚ¿ø ¾î´ðÅÍ¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ¼­ºí¸´ÀÌ Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÏ°í, ÀÚ¿ø ¾î´ðÅ͸¦ ¾×¼¼½ºÇÏ°í, µ¿ÀÏÇÑ Æ®·£Àè¼ÇÀÇ ÀϺηΠÀÚ¿ø ¾î´ðÅ͸¦ ¾×¼¼½ºÇÏ´Â Enterprise BeanÀ» ºÒ·¯³½ ÈÄ, ¸¶Áö¸·À¸·Î Æ®·£Àè¼ÇÀ» ¿Ï°áÇÒ ¼ö ÀÖ½À´Ï´Ù.

·ÎÄà ¹× ºÐ»ê Æ®·£Àè¼Ç

ÇÑ ÀÚ¿ø°ú¸¸ °ü·Ã ÀÖ´Â Æ®·£Àè¼ÇÀº ·ÎÄà Ʈ·£Àè¼ÇÀ» »ç¿ëÇÏ¿© ¿Ï·áµÉ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ·ÎÄà Ʈ·£Àè¼ÇÀº ¸ðµç Âü¿© ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò°¡ ÇϳªÀÇ ÇÁ·Î¼¼½º ³»¿¡¼­ ½ÇÇàµÇ¾î¾ß ÇÕ´Ï´Ù. µÎ °³ ÀÌ»óÀÇ ÀÚ¿ø ¶Ç´Â ¿©·¯ Âü¿© ÇÁ·Î¼¼½º°¡ °ü·ÃµÈ Æ®·£Àè¼ÇÀº ºÐ»ê ¶Ç´Â Àü¿ª Æ®·£Àè¼ÇÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. ·ÎÄà Ʈ·£Àè¼Ç ÃÖÀûÈ­´Â ÃÖÀûÈ­ Àü¿ë ÀÚ¿ø °ü¸®ÀÚ¸¦ »ç¿ëÇϸç, ÀÌ°ÍÀº J2EE ÀÀ¿ë ÇÁ·Î±×·¥¿¡ Åõ¸íÇÕ´Ï´Ù.

Æ®·£Àè¼Ç À¯ÇüÀº °ü·Ã ÀÚ¿ø °ü¸®ÀÚ¿¡ ±¸ÇöµÈ ÀÎÅÍÆäÀ̽º·Î ÆÇ´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, javax.sql.DataSource ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â JDBC µ¥ÀÌÅÍ ¼Ò½º´Â ·ÎÄà Ʈ·£Àè¼Ç¿¡ Âü¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù. javax.sql.XADataSource¸¦ ±¸ÇöÇÏ´Â µ¥ÀÌÅÍ ¼Ò½º´Â Àü¿ª Æ®·£Àè¼ÇÀÇ ÀϺθ¦ ÃëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀϺΠJDBC ÀÚ¿øÀº µÎ ÀÎÅÍÆäÀ̽º¸¦ ¸ðµÎ ±¸ÇöÇϸç, ÀÌ·± JDBC ÀÚ¿øÀÌ Sun ONE Application Server¿¡ µî·ÏµÇ¾î ÀÖÀ¸¸é Sun ONE Application ServerÀÇ ±¸¼º¿¡ ÇØ´ç ÀÚ¿øÀÇ ¼±È£ ±â´ÉÀ» Ç¥½ÃÇÏ´Â ±¸¼º Á¤º¸¸¦ Ãß°¡ÇØ¾ß ÇÒ ¼ö ÀÖ½À´Ï´Ù.

·ÎÄà Ʈ·£Àè¼ÇÀÌ ´õ °£´ÜÇÏ¸ç ±âº»ÀûÀ¸·Î Àü¿ª Æ®·£Àè¼Çº¸´Ù È¿À²ÀûÀÔ´Ï´Ù. º¯ÇüÇØ¾ß ÇÒ µ¥ÀÌÅÍ°¡ ¿©·¯ µ¥ÀÌÅÍ ¼Ò½º¿¡ ÀÖÀ» °æ¿ì¿¡´Â ·ÎÄà Ʈ·£Àè¼ÇÀÌ ÀûÀýÇÏÁö ¾Ê½À´Ï´Ù. ¶§·Î ¸î °³ÀÇ µ¥ÀÌÅÍ ¼Ò½º°¡ Æ®·£Àè¼Ç¿¡ ³ª¿­µÇ¾î¾ß ÇÏ´ÂÁö ¿¹ÃøÇÒ ¼ö ¾ø´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡ ½ÇÁ¦·Î´Â Àü¿ª Æ®·£Àè¼ÇÀ» ´õ ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù. Àü¿ª Æ®·£Àè¼Ç¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸î °¡Áö ¼º´É °³¼± ÃÖÀûÈ­°¡ ÀÖ½À´Ï´Ù.

J2EE´Â Æ®·£Àè¼Ç ³»ÀÇ ¿©·¯ Enterprise Bean¿¡ ¾×¼¼½ºÇÏ´Â ¼­ºí¸´À̳ª JSPÀÇ ÀÓÀÇ Á¶ÇÕÀ» ¸ðµÎ Æ÷ÇÔÇÏ´Â Æ®·£Àè¼Ç ÀÀ¿ë ÇÁ·Î±×·¥À» Áö¿øÇÕ´Ï´Ù. °¢ ±¸¼º ¿ä¼Ò´Â Çϳª ÀÌ»óÀÇ Æ®·£Àè¼Ç ÀÚ¿ø °ü¸®ÀÚ¿¡ ´ëÇØ Çϳª ÀÌ»óÀÇ ¿¬°áÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ±×¸²¿¡¼­, È£Ãâ Æ®¸®´Â ¿©·¯ Enterprise BeanÀ» ¾×¼¼½ºÇÏ´Â ¼­ºí¸´ ¶Ç´Â JSP¿¡¼­ ½ÃÀÛÇϸç, ÀÌÈÄ ´Ù¸¥ Enterprise BeanÀ» ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ±¸¼º ¿ä¼Ò´Â ¿¬°áÀ» ÅëÇØ ÀÚ¿ø °ü¸®ÀÚ¿¡ ¾×¼¼½ºÇÕ´Ï´Ù.

Æ®·£Àè¼ÇÀÇ ÀÚ¿ø¿¡ ¾×¼¼½ºÇÏ´Â J2EE ±¸¼º ¿ä¼Ò
ÀÌ ±×¸²Àº Æ®·£Àè¼Ç¿¡ ´ëÇÑ ¸ðµç ±¸¼º ¿ä¼Ò¸¦ º¸¿©Áִ ȣÃâ Æ®¸®ÀÔ´Ï´Ù.

¿¹¸¦ µé¾î, ÀÀ¿ë ÇÁ·Î±×·¥Àº À§ ±×¸²ÀÇ ¸ðµç ±¸¼º ¿ä¼Ò°¡ ´ÜÀÏ Æ®·£Àè¼ÇÀÇ ÀϺηΠÀÚ¿ø¿¡ ¾×¼¼½ºÇØ¾ß ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ¼­¹ö °ø±ÞÀÚ´Â ÀÌ·± ½Ã³ª¸®¿À¸¦ Áö¿øÇÏ´Â Æ®·£Àè¼Ç ±â´ÉÀ» Á¦°øÇØ¾ß ÇÕ´Ï´Ù.

J2EE Æ®·£Àè¼Ç °ü¸®´Â Ç÷§ Æ®·£Àè¼ÇÀ» Áö¿øÇÕ´Ï´Ù. Ç÷§ Æ®·£Àè¼ÇÀº ÀÚ½Ä(ÁßøµÈ) Æ®·£Àè¼ÇÀ» °¡Áú ¼ö ¾ø½À´Ï´Ù.

Æ®·£Àè¼Ç º¹±¸´Â ºÐ»ê Æ®·£Àè¼Ç¿¡ ÀÖ¾î Áß¿äÇÑ Ãø¸éÀÔ´Ï´Ù. Å©¸®Æ¼Äà Æ÷ÀÎÆ® µ¿¾È ÀÚ¿øÀ» »ç¿ëÇÒ ¼ö ¾ø°Å³ª ±âŸ º¹±¸ÇÒ ¼ö ¾ø´Â ¿À·ù°¡ ¹ß»ýÇϸé, ºÐ»ê Æ®·£Àè¼ÇÀÇ »óŸ¦ ¸ð¸£°Ô µÉ ¼ö ÀÖ½À´Ï´Ù. ²¿À̰ųª ¿Ï·áµÇÁö ¸øÇÑ Æ®·£Àè¼ÇÀ» ÀÚµ¿ ¹× ¼öµ¿À¸·Î º¹±¸ÇÏ´Â °ÍÀº Sun ONE Application ServerÀÇ Áß¿äÇÑ ±â´ÉÀÔ´Ï´Ù. ÀÚµ¿ Æ®·£Àè¼Ç º¹±¸´Â °ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. Æ®·£Àè¼Ç º¹±¸ Á¦¾î ¹æ¹ýÀÇ ÀÚ¼¼ÇÑ ³»¿ëÀº "Æ®·£Àè¼Ç ¼­ºñ½º °ü¸®"¸¦ ÂüÁ¶ÇϽʽÿÀ.

¿¬°á(¿©±â¿¡¼­´Â ÀÚ¿ø°ú µ¿ÀǾî·Î »ç¿ëµÊ)Àº °øÀ¯ °¡´É ¿©ºÎ°¡ Ç¥½ÃµÉ ¼ö ÀÖ½À´Ï´Ù. °øÀ¯ ºÒ°¡´ÉÇÑ ¹æ¹ýÀ¸·Î ¿¬°áÀ» »ç¿ëÇÏ·Á´Â J2EE ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò´Â ¿µÇâÀ» ¹Þ´Â Ãø¿¡ ¹èÆ÷ Á¤º¸¸¦ Á¦°øÇÏ¿© ÄÁÅ×À̳ʰ¡ ¿¬°áÀ» °øÀ¯ÇÏÁö ¸øÇϵµ·Ï ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ°ÍÀÌ ÇÊ¿äÇÒ ¼ö ÀÖ´Â °æ¿ìÀÇ ¿¹·Î´Â º¸¾È ¼Ó¼º, °í¸³È­ ¼öÁØ, ¹®ÀÚ ÁýÇÕ ¹× ·ÎÄÃÈ­ ±¸¼ºÀ» º¯°æÇÏ´Â °æ¿ì°¡ Æ÷ÇԵ˴ϴÙ.

ÄÁÅ×À̳ʴ °øÀ¯ ºÒ°¡´ÉÀ¸·Î Ç¥½ÃµÈ ¿¬°áÀ» °øÀ¯ÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù. ¿¬°áÀÌ °øÀ¯ ºÒ°¡´ÉÀ¸·Î Ç¥½ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¸é, ÀÌ°ÍÀº ¿¬°áÀÌ ½ÇÁ¦ °øÀ¯µÇ¾î ÀÖ´ÂÁö ¿©ºÎ¿Í »ó°ü¾øÀÌ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ Åõ¸íÇØ¾ß ÇÕ´Ï´Ù.

J2EE ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò´Â ¼±ÅÃÀû Àü°³ ¼³¸íÀÚ ¿ä¼Ò res-sharing-scope¸¦ »ç¿ëÇÏ¿© ÀÚ¿ø °ü¸®ÀÚ¿¡ ´ëÇÑ ¿¬°áÀÇ °øÀ¯ °¡´É ¿©ºÎ¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÁÅ×À̳ʴ Àü°³ °ü·Ã Á¤º¸°¡ Á¦°øµÇÁö ¾ÊÀ¸¸é °øÀ¯ °¡´ÉÇÑ ¿¬°áÀ̶ó°í °£ÁÖÇÕ´Ï´Ù. J2EE ÀÀ¿ë ÇÁ·Î±×·¥ ±¸¼º ¿ä¼Ò´Â ¿¬°á °´Ã¼¸¦ ij½ÃÇÏ¿© ¿©·¯ Æ®·£Àè¼Ç¿¡¼­ ´Ù½Ã »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. °øÀ¯ ¿¬°áÀ» Á¦°øÇÏ´Â ÄÁÅ×À̳ʴ ÀÌ·± ij½ÃµÈ ¿¬°á °´Ã¼¸¦ Åõ¸íÇÏ°Ô ÀüȯÇÏ¿©(µð½ºÆÐÄ¡ÇÒ ¶§) ¿Ã¹Ù¸¥ Æ®·£Àè¼Ç ¹üÀ§¸¦ °¡Áø ÀûÀýÇÑ °øÀ¯ ¿¬°áÀ» °¡¸®Å°µµ·Ï ÇØ¾ß ÇÕ´Ï´Ù.

Enterprise Bean ÀÀ¿ë ÇÁ·Î±×·¥À» ¼³°èÇÏ´Â °æ¿ì, °³¹ßÀÚ´Â °æ°è ÁöÁ¤ ¹æ¹ýÀ» °áÁ¤ÇØ¾ß ÇÕ´Ï´Ù.

ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼Ç

ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼ÇÀÌ ÀÖ´Â Enterprise BeanÀÇ °æ¿ì¿¡´Â EJB ÄÁÅ×À̳ʰ¡ Æ®·£Àè¼Ç °æ°è¸¦ ¼³Á¤ÇÕ´Ï´Ù. Enterprise Bean À¯ÇüÀ¸·Î Session, Entity ¶Ç´Â Message-DrivenÀ» °¡Áø ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼ÇÀº Enterprise Bean Äڵ尡 Æ®·£Àè¼ÇÀÇ °æ°è¸¦ ¸í½ÃÀûÀ¸·Î Ç¥½ÃÇÏÁö ¾Ê±â ¶§¹®¿¡ °£´ÜÇÏ°Ô ¹èÆ÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Äڵ忡´Â Æ®·£Àè¼Ç ½ÃÀÛ ¹× Á¾·á ¸í·ÉÀÌ ¾ø½À´Ï´Ù.

ÀϹÝÀûÀ¸·Î ÄÁÅ×À̳ʴ Enterprise Bean ¸Þ¼Òµå°¡ ½ÃÀÛÇϱâ Á÷Àü¿¡ Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÏ°í, ¸Þ¼Òµå°¡ Á¾·áµÇ±â Á÷Àü Æ®·£Àè¼ÇÀ» ¿Ï°áÇÕ´Ï´Ù. °¢ ¸Þ¼Òµå´Â ´ÜÀÏ Æ®·£Àè¼Ç¿¡ °ü·ÃµÉ ¼ö ÀÖ½À´Ï´Ù. ÇÑ ¸Þ¼Òµå ³»¿¡ ÁßøµÈ Æ®·£Àè¼Ç ¶Ç´Â ¿©·¯ Æ®·£Àè¼ÇÀ» Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù.

ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼ÇÀÌ Æ®·£Àè¼Ç¿¡ ¿¬°áµÉ ¶§ ¸ðµç ¸Þ¼Òµå°¡ ÇÊ¿äÇÏÁö´Â ¾Ê½À´Ï´Ù. BeanÀ» ¹èÆ÷ÇÒ ¶§¿¡´Â Æ®·£Àè¼Ç ¼Ó¼ºÀ» ¼³Á¤ÇÏ¿© Æ®·£Àè¼Ç°ú °ü·ÃµÈ BeanÀÇ ¸Þ¼Òµå¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

ÀÌ Àý¿¡¼­´Â ´ÙÀ½ ³»¿ëÀ» ¼³¸íÇÕ´Ï´Ù.

Æ®·£Àè¼Ç ¼Ó¼º

Æ®·£Àè¼Ç ¼Ó¼ºÀº Æ®·£Àè¼Ç ¹üÀ§¸¦ Á¦¾îÇÕ´Ï´Ù. ´ÙÀ½ ±×¸²Àº ¹üÀ§ Á¦¾î°¡ ¿Ö Áß¿äÇÑÁö º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. ´ÙÀ̾î±×·¥¿¡¼­, ¸Þ¼Òµå A´Â Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÏ°í Bean 2ÀÇ ¸Þ¼Òµå B´Â Æ®·£Àè¼ÇÀ» ºÒ·¯³À´Ï´Ù. ¸Þ¼Òµå B°¡ ½ÇÇàµÇ¸é ¸Þ¼Òµå A°¡ ½ÃÀÛÇÑ Æ®·£Àè¼Ç ¹üÀ§ ³»¿¡¼­ ½ÇÇàµÉ±î¿ä? ¾Æ´Ï¸é »õ Æ®·£Àè¼ÇÀ¸·Î ½ÇÇàµÉ±î¿ä? ´äÀº ¸Þ¼Òµå BÀÇ Æ®·£Àè¼Ç ¼Ó¼º¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù.

  
ÀÌ ±×¸²Àº Æ®·£Àè¼ÇÀÇ ¹üÀ§ÀÔ´Ï´Ù.
Æ®·£Àè¼Ç ¼Ó¼º

Æ®·£Àè¼Ç ¼Ó¼ºÀº ´ÙÀ½ °ª Áß Çϳª¸¦ °¡Áú ¼ö ÀÖ½À´Ï´Ù.

Required

Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇà ÁßÀÏ ¶§ Enterprise BeanÀÇ ¸Þ¼Òµå¸¦ ºÒ·¯³»¸é, ÀÌ ¸Þ¼Òµå´Â Ŭ¶óÀ̾ðÆ® Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇàµË´Ï´Ù. Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç°ú °ü·ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¸é, ¸Þ¼Òµå°¡ ½ÇÇàµÇ±â Àü ¸ÕÀú ÄÁÅ×À̳ʰ¡ »õ Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÕ´Ï´Ù.

Required ¼Ó¼ºÀº ´ëºÎºÐÀÇ Æ®·£Àè¼Ç¿¡ »ç¿ëµË´Ï´Ù. ÀÌ ¶§¹®¿¡ ÃÖ¼ÒÇÑ °³¹ß Ãʱ⿡´Â ÀÌ°ÍÀ» ±âº»°ªÀ¸·Î »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. Æ®·£Àè¼Ç ¼Ó¼ºÀº ¼±¾ðÀûÀ̱⠶§¹®¿¡ ³ªÁß¿¡ ½±°Ô º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.

RequiresNew

Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇà ÁßÀÏ ¶§ Enterprise BeanÀÇ ¸Þ¼Òµå¸¦ ºÒ·¯³»¸é, ÄÁÅ×À̳ʴ ´ÙÀ½ ´Ü°è¸¦ ¼öÇàÇÕ´Ï´Ù.

  • Ŭ¶óÀ̾ðÆ®ÀÇ Æ®·£Àè¼Ç ÀϽà Áß´Ü
  • »õ Æ®·£Àè¼Ç ½ÃÀÛ
  • ¸Þ¼Òµå¿¡°Ô È£Ãâ À§ÀÓ
  • ¸Þ¼Òµå ½ÇÇà ¿Ï·á ÈÄ Å¬¶óÀ̾ðÆ®ÀÇ Æ®·£Àè¼Ç ´Ù½Ã ½ÃÀÛ

Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç°ú °ü·ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¸é, ¸Þ¼Òµå°¡ ½ÇÇàµÇ±â Àü ¸ÕÀú ÄÁÅ×À̳ʰ¡ »õ Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÕ´Ï´Ù.

¸Þ¼Òµå°¡ »õ Æ®·£Àè¼Ç ³»¿¡¼­ Ç×»ó ½ÇÇàµÇµµ·Ï ÇÏ·Á¸é RequiresNew ¼Ó¼ºÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

Mandatory

Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇà ÁßÀÏ ¶§ Enterprise BeanÀÇ ¸Þ¼Òµå¸¦ ºÒ·¯³»¸é, ÀÌ ¸Þ¼Òµå´Â Ŭ¶óÀ̾ðÆ® Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇàµË´Ï´Ù. Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç°ú °ü·ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¸é TransactionRequiredExceptionÀÌ ¹ß»ýÇÕ´Ï´Ù.

Enterprise BeanÀÇ ¸Þ¼Òµå°¡ Ŭ¶óÀ̾ðÆ® Æ®·£Àè¼ÇÀ» »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì Mandatory ¼Ó¼ºÀ» »ç¿ëÇÕ´Ï´Ù.

NotSupported

Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇà ÁßÀÏ ¶§ Enterprise BeanÀÇ ¸Þ¼Òµå¸¦ ºÒ·¯³»¸é, ÄÁÅ×À̳ʴ ÀÌ ¸Þ¼Òµå¸¦ ºÒ·¯³»±â Àü ¸ÕÀú Ŭ¶óÀ̾ðÆ® Æ®·£Àè¼ÇÀ» ÀϽà Áß´ÜÇÕ´Ï´Ù. ¸Þ¼Òµå°¡ ¿Ï·áµÈ ´ÙÀ½ ÄÁÅ×À̳ʴ Ŭ¶óÀ̾ðÆ® Æ®·£Àè¼ÇÀ» ´Ù½Ã ½ÃÀÛÇÕ´Ï´Ù.

Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç°ú °ü·ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¸é, ÄÁÅ×À̳ʴ ¸Þ¼Òµå°¡ ½ÇÇàµÇ±â Àü »õ Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÏÁö ¾Ê½À´Ï´Ù.

Æ®·£Àè¼ÇÀÌ ÇÊ¿äÇÏÁö ¾ÊÀº ¸Þ¼Òµå¿¡´Â NotSupported ¼Ó¼ºÀ» »ç¿ëÇÕ´Ï´Ù. Æ®·£Àè¼Ç ºÒ·¯³»±â´Â ¿À¹öÇìµå°¡ Àֱ⠶§¹®¿¡ ÀÌ ¼Ó¼ºÀº ¼º´ÉÀ» °³¼±ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Supports

Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇà ÁßÀÏ ¶§ Enterprise BeanÀÇ ¸Þ¼Òµå¸¦ ºÒ·¯³»¸é, ÀÌ ¸Þ¼Òµå´Â Ŭ¶óÀ̾ðÆ® Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇàµË´Ï´Ù. Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç°ú °ü·ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¸é, ÄÁÅ×À̳ʴ ¸Þ¼Òµå°¡ ½ÇÇàµÇ±â Àü »õ Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÏÁö ¾Ê½À´Ï´Ù.

¸Þ¼ÒµåÀÇ Æ®·£Àè¼Ç ÀÛ¾÷Àº ´Ù¾çÇϱ⠶§¹®¿¡ Supports ¼Ó¼ºÀº ÁÖÀÇÇؼ­ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

Never

Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇà ÁßÀÏ ¶§ Enterprise BeanÀÇ ¸Þ¼Òµå¸¦ ºÒ·¯³»¸é, ÄÁÅ×À̳ʴ RemoteException¸¦ ¹ß»ýÇÕ´Ï´Ù. Ŭ¶óÀ̾ðÆ®°¡ Æ®·£Àè¼Ç°ú °ü·ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¸é, ÄÁÅ×À̳ʴ ¸Þ¼Òµå°¡ ½ÇÇàµÇ±â Àü »õ Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÏÁö ¾Ê½À´Ï´Ù.

¼Ó¼º ¿ä¾à

´ÙÀ½ Ç¥´Â Æ®·£Àè¼Ç ¼Ó¼ºÀÇ ¿µÇâÀ» ¿ä¾àÇÕ´Ï´Ù. T1 ¹× T2 Æ®·£Àè¼ÇÀº ¸ðµÎ ÄÁÅ×À̳ʷΠÁ¦¾îµË´Ï´Ù. T1 Æ®·£Àè¼ÇÀº Enterprise BeanÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇϴ Ŭ¶óÀ̾ðÆ®¿Í °ü·ÃµÇ¾î ÀÖ½À´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì Ŭ¶óÀ̾ðÆ®µµ º°µµÀÇ Enterprise BeanÀÔ´Ï´Ù. T2 Æ®·£Àè¼ÇÀº ¸Þ¼Òµå°¡ ½ÇÇàµÇ±â Àü ÄÁÅ×À̳ʿ¡ ÀÇÇØ ½ÃÀ۵˴ϴÙ.

¸¶Áö¸» ¿­ÀÇ '¾øÀ½'À̶ó´Â ´Ü¾î´Â ºñÁî´Ï½º ¸Þ¼Òµå°¡ ÄÁÅ×À̳ʰ¡ Á¦¾îÇÏ´Â Æ®·£Àè¼Ç ³»¿¡¼­ ½ÇÇàµÇÁö ¾ÊÀ½À» Ç¥½ÃÇÕ´Ï´Ù. ÇÏÁö¸¸ ÀÌ·± ºñÁî´Ï½º ¸Þ¼Òµå¿¡ È£ÃâµÈ µ¥ÀÌÅͺ£À̽º´Â DBMSÀÇ Æ®·£Àè¼Ç °ü¸®ÀÚ°¡ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.

   Æ®·£Àè¼Ç ¼Ó¼º

Æ®·£Àè¼Ç ¼Ó¼º

 

Ŭ¶óÀ̾ðÆ® Æ®·£Àè¼Ç

 

ºñÁî´Ï½º ¸Þ¼ÒµåÀÇ Æ®·£Àè¼Ç

 

Required

¾øÀ½

 

T2

 

T1

 

T1

 

RequiresNew

¾øÀ½

 

T2

 

T1

 

T2

 

Mandatory

¾øÀ½

 

¿À·ù

 

T1

 

T1

 

NotSupported

¾øÀ½

 

¾øÀ½

 

T1

 

¾øÀ½

 

Supports

 

¾øÀ½

T1

 

¾øÀ½

T1

 

Æ®·£Àè¼Ç ¼Ó¼º ¼³Á¤

Æ®·£Àè¼Ç ¼Ó¼ºÀº ¹èÆ÷ ¼³¸íÀÚ¿¡ ÀúÀåµÇ±â ¶§¹®¿¡ Enterprise Bean ÀÛ¼º, ÀÀ¿ë ÇÁ·Î±×·¥ ¾î¼Àºí¸® ¹× ¹èÆ÷ µî J2EE ÀÀ¿ë ÇÁ·Î±×·¥ Àü°³ÀÚÀÇ ¿©·¯ ´Ü°è µµÁß º¯°æµÉ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ Bean ÀÛ¼º½Ã ¼Ó¼ºÀ» ÁöÁ¤ÇÏ´Â °ÍÀº °³¹ßÀÚ°¡ ÇØ¾ß ÇÕ´Ï´Ù. ¼Ó¼ºÀº ±¸¼º ¿ä¼Ò¸¦ ´õ Å« ÀÀ¿ë ÇÁ·Î±×·¥À¸·Î ¾î¼Àºí¸®ÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀÚ¸¸ ¼öÁ¤ÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. J2EE ÀÀ¿ë ÇÁ·Î±×·¥À» ¹èÆ÷ÇÏ´Â »ç¶÷Àº Æ®·£Àè¼Ç ¼Ó¼ºÀ» ÁöÁ¤ÇÒ Ã¥ÀÓÀÌ ¾ø½À´Ï´Ù.

Àüü Enterprise Bean ¶Ç´Â °¢ ¸Þ¼Òµå¿¡ ´ëÇØ Æ®·£Àè¼Ç ¼Ó¼ºÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÑ ¼Ó¼ºÀº ¸Þ¼Òµå¿¡ ´ëÇØ ÁöÁ¤ÇÏ°í ´Ù¸¥ ¼Ó¼ºÀº Bean¿¡ ´ëÇØ ÁöÁ¤ÇÑ °æ¿ì¿¡´Â ¸Þ¼Òµå¿¡ ´ëÇØ ÁöÁ¤ÇÑ ¼Ó¼ºÀÌ ¿ì¼±±ÇÀ» °®½À´Ï´Ù. °¢ ¸Þ¼Òµå¿¡ ´ëÇØ ¼Ó¼ºÀ» ÁöÁ¤ÇÏ´Â °æ¿ì ÇÊ¿äÇÑ »çÇ×Àº Bean À¯Çü¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. Session Bean¿¡´Â ºñÁî´Ï½º ¸Þ¼Òµå¿¡ Á¤ÀÇµÈ ¼Ó¼ºÀÌ ÇÊ¿äÇÏÁö¸¸, »ý¼º ¸Þ¼Òµå¿¡ ´ëÇؼ­´Â Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù. Entity Bean¿¡´Â ºñÁî´Ï½º, »ý¼º, Á¦°Å ¹× °Ë»ö ¸Þ¼Òµå¿¡ ´ëÇÑ Æ®·£Àè¼Ç ¼Ó¼ºÀÌ ÇÊ¿äÇÕ´Ï´Ù. Message-Driven Bean¿¡´Â onMessage ¸Þ¼Òµå¿¡ ´ëÇÑ Æ®·£Àè¼Ç ¼Ó¼º(Required ¶Ç´Â NotSupported Áß Çϳª)ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼Ç ·Ñ¹é

ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼ÇÀÇ ·Ñ¹é¿¡´Â µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ¸ÕÀú ½Ã½ºÅÛ ¿¹¿Ü°¡ ¹ß»ýÇϸé ÄÁÅ×À̳ʴ ÀÚµ¿À¸·Î Æ®·£Àè¼ÇÀ» ·Ñ¹éÇÕ´Ï´Ù. µÎ ¹ø°·Î EJBContext ÀÎÅÍÆäÀ̽ºÀÇ setRollbackOnly ¸Þ¼Òµå¸¦ ºÒ·¯³»¼­, Bean ¸Þ¼Òµå°¡ ÄÁÅ×À̳ʿ¡°Ô Æ®·£Àè¼Ç ·Ñ¹éÀ» Áö½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. BeanÀÌ ÀÀ¿ë ÇÁ·Î±×·¥ ¿¹¿Ü¸¦ ¹ß»ý½ÃÅ°¸é ·Ñ¹éÀÌ ÀÚµ¿À¸·Î ½ÇÇàµÇÁö ¾Ê¾Æµµ setRollbackOnly¸¦ È£ÃâÇÏ¿© ÃʱâÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù.

´ÙÀ½ ¿¹¿¡¼­ BankEJB ¿¹ÀÇ transferToSaving ¸Þ¼Òµå´Â setRollbackOnly ¸Þ¼Òµå¸¦ ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ¼öÇ¥ °èÁ¤ÀÇ Àܾ×ÀÌ ¸¶À̳ʽº°¡ µÇ¸é, transferToSavingÀº setRollBackOnly¸¦ ºÒ·¯³»°í ÀÀ¿ë ÇÁ·Î±×·¥ ¿¹¿Ü(InsufficientBalanceException)¸¦ ¹ß»ý½Ãŵ´Ï´Ù. updateChecking ¹× updateSaving ¸Þ¼Òµå´Â µ¥ÀÌÅͺ£À̽º Å×À̺íÀ» ¾÷µ¥ÀÌÆ®ÇÕ´Ï´Ù. ¾÷µ¥ÀÌÆ®¿¡ ½ÇÆÐÇÏ¸é ¸Þ¼Òµå´Â SQLExceptionÀ» ¹ß»ý½ÃÅ°°í transferToSaving ¸Þ¼Òµå´Â EJBExceptionÀ» ¹ß»ý½Ãŵ´Ï´Ù.

EJBExceptionÀº ½Ã½ºÅÛ ¿¹¿Ü±â ¶§¹®¿¡, ÄÁÅ×À̳ʴ ÀÚµ¿À¸·Î Æ®·£Àè¼ÇÀ» ·Ñ¹éÇÕ´Ï´Ù. ´ÙÀ½Àº transferToSaving ¸Þ¼ÒµåÀÇ ÄÚµåÀÔ´Ï´Ù.

public void transferToSaving(double amount) throws
InsufficientBalanceException {

checkingBalance -= amount;
savingBalance += amount;

if (checkingBalance < 0.00) {
context.setRollbackOnly();

throw new InsufficientBalanceException();
}
try {
updateChecking(checkingBalance);

updateSaving(savingBalance);
} catch (SQLException ex) {
throw new EJBException
("Transaction failed due to SQLException: "
+ ex.getMessage());
}
}

ÄÁÅ×À̳ʰ¡ Æ®·£Àè¼ÇÀ» ·Ñ¹éÇÏ´Â °æ¿ì, ÀÌ°ÍÀº Ç×»ó Æ®·£Àè¼Ç ³»ÀÇ SQL È£Ãâ·Î ¹ß»ýÇÑ µ¥ÀÌÅÍ º¯°æÀ» ¸ðµÎ ½ÇÇà Ãë¼ÒÇÕ´Ï´Ù. ÇÏÁö¸¸ ÄÁÅ×À̳ʴ Entity Bean¿¡¼­¸¸ ÀνºÅϽº º¯¼ö¿¡ ´ëÇÑ º¯°æÀ» Ãë¼ÒÇÕ´Ï´Ù(ÀÌ ÀÛ¾÷Àº Entity BeanÀÇ ejbLoad ¸Þ¼Òµå¸¦ ÀÚµ¿À¸·Î È£ÃâÇÏ¿© ¼öÇàÇϸç, µ¥ÀÌÅͺ£À̽º¿¡¼­ ÀνºÅϽº º¯¼ö°¡ ·ÎµåµÊ). ·Ñ¹éÀÌ ¹ß»ýÇϸé Session BeanÀº Æ®·£Àè¼Ç ³»¿¡ º¯°æµÈ ÀνºÅϽº º¯¼ö¸¦ ¸í½ÃÀûÀ¸·Î ´Ù½Ã ¼³Á¤ÇÕ´Ï´Ù. Session Bean ÀνºÅϽº º¯¼ö¸¦ ´Ù½Ã ¼³Á¤ÇÏ´Â °¡Àå ½¬¿î ¹æ¹ýÀº SessionSynchronization ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °ÍÀÔ´Ï´Ù.

Æ®·£Àè¼Ç ID¸¦ ¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ Àü´ÞÇÏ¿© Æ®·£Àè¼ÇÀ» ·Ñ¹éÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº "¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÑ Æ®·£Àè¼Ç °ü¸®"¸¦ ÂüÁ¶ÇϽʽÿÀ.

Session BeanÀÇ ÀνºÅϽº º¯¼ö µ¿±âÈ­

SessionSynchronization ÀνºÅϽº(¼±ÅÃÀû)¸¦ »ç¿ëÇϸé ÀνºÅϽº º¯¼ö¸¦ µ¥ÀÌÅͺ£À̽º ³»ÀÇ ´ëÀÀÇÏ´Â °ª°ú µ¿±âÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÁÅ×À̳ʴ Ʈ·£Àè¼ÇÀÇ °¢ ÁÖ¿ä ´Ü°è¿¡¼­ SessionSynchronization ¸Þ¼Òµå(afterBegin, beforeCompletion ¹× afterCompletion)¸¦ ºÒ·¯³À´Ï´Ù.

afterBegin ¸Þ¼Òµå´Â »õ Æ®·£Àè¼ÇÀÌ ½ÃÀ۵ǾúÀ½À» ÀνºÅϽº¿¡°Ô ¾Ë¸³´Ï´Ù. ÄÁÅ×À̳ʴ óÀ½À¸·Î Æ®·£Àè¼Ç ³»ÀÇ ºñÁî´Ï½º ¸Þ¼Òµå¸¦ ºÒ·¯³»±â Àü¿¡ ¸ÕÀú afterBeginÀ» ºÒ·¯³À´Ï´Ù. afterBegin ¸Þ¼Òµå´Â µ¥ÀÌÅͺ£À̽º¿¡¼­ ÀνºÅϽº º¯¼ö¸¦ ·ÎµåÇϱ⿡ ÁÁÀº À§Ä¡ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, BankBean Ŭ·¡½º´Â afterBegin ¸Þ¼Òµå ³»¿¡ checkingBalance ¹× savingBalance º¯¼ö¸¦ ·ÎµåÇÕ´Ï´Ù.

public void afterBegin() {

System.out.println("afterBegin()");
try {
checkingBalance = selectChecking();
savingBalance = selectSaving();
} catch (SQLException ex) {
throw new EJBException("afterBegin Exception: " +
ex.getMessage());
}
}

ÄÁÅ×À̳ʴ ºñÁî´Ï½º ¸Þ¼Òµå´Â ¿Ï·áµÇ¾úÁö¸¸ Æ®·£Àè¼ÇÀÌ ¿Ï°áµÇ±â Àü¿¡ beforeCompletion ¸Þ¼Òµå¸¦ ºÒ·¯³À´Ï´Ù. beforeCompletion ¸Þ¼Òµå´Â Session BeanÀÌ Æ®·£Àè¼ÇÀ» ·Ñ¹éÇÒ ¼ö ÀÖ´Â(setRollbackOnly¸¦ È£ÃâÇÏ¿©) ¸¶Áö¸· Àå¼ÒÀÔ´Ï´Ù. ¾ÆÁ÷ ÀνºÅϽºÀÇ º¯¼ö °ªÀ» µ¥ÀÌÅͺ£À̽º¿¡ ¾÷µ¥ÀÌÆ®ÇÏÁö ¾Ê¾Ò´Ù¸é, Session BeanÀº ÀÌ ÀÛ¾÷À» beforeCompletion ¸Þ¼Òµå¿¡¼­ ¼öÇàÇÕ´Ï´Ù.

afterCompletion ¸Þ¼Òµå´Â Æ®·£Àè¼ÇÀÌ ¿Ï·áµÇ¾úÀ½À» Ç¥½ÃÇÕ´Ï´Ù. ¿©±â¿¡´Â boolean °ªÀÇ ¸Å°³ º¯¼ö Çϳª°¡ ÀÖÀ¸¸ç, Æ®·£Àè¼ÇÀÌ ¿Ï°áµÇ¸é true, Æ®·£Àè¼ÇÀÌ ·Ñ¹éµÇ¸é false °ªÀ» °®½À´Ï´Ù. ·Ñ¹éÀÌ ¹ß»ýÇϸé Session BeanÀº afterCompletion ¸Þ¼Òµå¿¡¼­ µ¥ÀÌÅͺ£À̽ºÀÇ ÀνºÅϽº º¯¼ö¸¦ »õ·Î °íÄ¥ ¼ö ÀÖ½À´Ï´Ù.

public void afterCompletion(boolean committed) {

System.out.println("afterCompletion: " + committed);
if (committed == false) {
try {
checkingBalance = selectChecking();
savingBalance = selectSaving();
} catch (SQLException ex) {
throw new EJBException("afterCompletion SQLException:
" + ex.getMessage());
}
}
}

ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼Ç¿¡ Çã¿ëµÇÁö ¾Ê´Â ¸Þ¼Òµå

ÄÁÅ×À̳ʰ¡ ¼³Á¤ÇÑ Æ®·£Àè¼Ç °æ°è¸¦ °£¼·ÇÒ ¼ö ÀÖ´Â ¸Þ¼Òµå´Â ¸ðµÎ ºÒ·¯³¾ ¼ö ¾ø½À´Ï´Ù. ±ÝÁöµÇ´Â ¸Þ¼Òµå ¸ñ·ÏÀº ´ÙÀ½°ú °°½À´Ï´Ù.

  • java.sql.ConnectionÀÇ ¿Ï°á, setAutoCommit ¹× ·Ñ¹é ¸Þ¼Òµå.
  • javax.ejb.EJBContextÀÇ getUserTransaction ¸Þ¼Òµå.
  • javax.transaction.UserTransactionÀÇ ¸ðµç ¸Þ¼Òµå.

ÇÏÁö¸¸ Bean °ü¸® Æ®·£Àè¼Ç¿¡´Â ÀÌ ¸Þ¼ÒµåµéÀ» »ç¿ëÇÏ¿© °æ°è¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Bean °ü¸® Æ®·£Àè¼Ç

Bean °ü¸® Æ®·£Àè¼ÇÀÇ °æ¿ì, Session ¶Ç´Â Message-Driven Bean ³»ÀÇ Äڵ忡¼­ ¸í½ÃÀûÀ¸·Î Æ®·£Àè¼Ç °æ°è¸¦ Ç¥½ÃÇÕ´Ï´Ù. Entity BeanÀº Bean °ü¸® Æ®·£Àè¼ÇÀ» °¡Áú ¼ö ¾øÀ¸¸ç ´ë½Å ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼ÇÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼ÇÀ» °¡Áø BeanÀº ÇÊ¿äÇÑ Äڵ尡 ÁÙ¾îµéÁö¸¸ ÇÑ °¡Áö Á¦ÇÑÀ» °®½À´Ï´Ù. ¸Þ¼Òµå°¡ ½ÇÇàµÇ¸é BeanÀº ´ÜÀÏ Æ®·£Àè¼Ç¿¡ °ü·ÃµÇ°Å³ª ¾Æ¹«·± Æ®·£Àè¼Ç¿¡µµ °ü·ÃµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ Á¦ÇÑ ¶§¹®¿¡ Bean ÄÚµùÀÌ ¾î·Á¿öÁö´Â °æ¿ì, Bean °ü¸® Æ®·£Àè¼Ç »ç¿ëÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù.

´ÙÀ½ ÀÇ»ç ÄÚµå´Â Bean °ü¸® Æ®·£Àè¼ÇÀ¸·Î ±¸ÇÒ ¼ö ÀÖ´Â ¼¼ºÐÈ­µÈ Á¦¾î Á¾·ù¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÇ»ç ÄÚµå´Â ¿©·¯ Á¶°ÇÀ» È®ÀÎÇÏ¿© ºñÁî´Ï½º ¸Þ¼Òµå ³»¿¡¼­ ¿©·¯ Æ®·£Àè¼ÇÀÇ ½ÃÀÛ ¶Ç´Â ÁßÁö ¿©ºÎ¸¦ °áÁ¤ÇÕ´Ï´Ù.

begin transaction
...
update table-a
...
if (condition-x)
commit transaction
else if (condition-y)
update table-b
commit transaction
else
rollback transaction
begin transaction
update table-c
commit transaction

Æ®·£Àè¼Ç ¼­ºñ½º °ü¸®

°ü¸® ÀÎÅÍÆäÀ̽º ¶Ç´Â ¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© Æ®·£Àè¼ÇÀ» °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ Àý¿¡´Â ´ÙÀ½ ÁÖÁ¦°¡ Æ÷ÇԵ˴ϴÙ.

°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÑ Æ®·£Àè¼Ç °ü¸®

°ü¸® ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© Æ®·£Àè¼Ç ¸ð´ÏÅ͸µ, ·Î±× ¼öÁØ ¼³Á¤, °í±Þ ¿É¼Ç ÁöÁ¤ µîÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

º¹±¸ Á¤Ã¥ ¹× ½Ã°£ ÃÊ°ú¿Í °°Àº ÀνºÅϽº ¹üÀ§ÀÇ Æ®·£Àè¼Ç ¼­ºñ½º ¼Ó¼ºÀ» Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿©±â¿¡¼­ ÁöÁ¤ÇÏ´Â µî·Ï Á¤º¸ ¹× ±¸¼ºÀº server.xml ÆÄÀÏ¿¡ ÀúÀåµË´Ï´Ù.

Æ®·£Àè¼Ç ¼­ºñ½º ¿É¼ÇÀ» ±¸¼ºÇÏ·Á¸é ´ÙÀ½ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù.

  1. °ü¸® ÀÎÅÍÆäÀ̽ºÀÇ ¿ÞÂÊ Ã¢¿¡¼­ Æ®·£Àè¼Ç ±¸¼ºÀ» ¼öÁ¤ÇÒ Sun ONE Application Server ÀνºÅϽº Æ®¸®¸¦ ¿±´Ï´Ù.
  2. ¹èÆ÷µÈ J2EE ¼­ºñ½º¿¡¼­ Æ®·£Àè¼Ç ¼­ºñ½º¸¦ ¼±ÅÃÇÕ´Ï´Ù. °ü¸® ÀÎÅÍÆäÀ̽º ¿À¸¥ÂÊ Ã¢ÀÇ ±×¸² Æ®·£Àè¼Ç ¼­ºñ½º ±¸¼º ¿É¼Ç¿¡ Ç¥½ÃµÈ ´ÙÀ½ âÀÌ ³ªÅ¸³³´Ï´Ù.

   Æ®·£Àè¼Ç ¼­ºñ½º ±¸¼º ¿É¼Ç
ÀÌ ±×¸²Àº Java Transaction Service¿¡ ´ëÇØ ±¸¼ºÇÒ ¼ö ÀÖ´Â °í±Þ ¼­ºñ½º ¿É¼ÇÀÔ´Ï´Ù.

  1. Æ®·£Àè¼Ç¿¡ ´ëÇÑ ¸ð´ÏÅ͸µÀ» È°¼ºÈ­ÇÏ·Á¸é "¸ð´ÏÅ͸µ È°¼ºÈ­" È®ÀζõÀ» Ç¥½ÃÇÕ´Ï´Ù. ´ÙÀ½ Ç¥´Â ¸ð´ÏÅ͸µµÉ ¼ö ÀÖ´Â Java Transaction Service ±â´ÉÀ» ³ª¿­ÇÕ´Ï´Ù.

   Java Transaction ServiceÀÇ ¸ð´ÏÅ͸µ °¡´ÉÇÑ ¼Ó¼º

µî·Ï Á¤º¸

 

Type

 

¼³¸í

 

transactionsCompleted

 

int

 

¸ð´ÏÅ͸µÀÌ È°¼ºÈ­µÈ ÈÄ ¿Ï·áµÈ Æ®·£Àè¼Ç °³¼ö

 

transactionsRolledBack

 

int

 

¸ð´ÏÅ͸µÀÌ È°¼ºÈ­µÈ ÈÄ ·Ñ¹éµÈ Æ®·£Àè¼Ç °³¼ö

 

transactionsRecovered

 

int

 

¸ð´ÏÅ͸µÀÌ È°¼ºÈ­µÈ ÈÄ º¹±¸µÈ Æ®·£Àè¼Ç °³¼ö

 

transactionsInFlight

 

int

 

ÇöÀç ó¸® ÁßÀÎ Æ®·£Àè¼Ç °³¼ö

 

timeStamp

 

long

 

Åë°è°¡ ÀÛ¼ºµÈ ŸÀÓ½ºÅÆÇÁ(¹Ð¸®ÃÊ ´ÜÀ§). ÀÌ°ÍÀº ¸ðµÎ System.getCurrentTimeInMillis()¿¡¼­ º¸°íÇÕ´Ï´Ù.

 

  1. "·Î±× ¼öÁØ" µå·Ó´Ù¿î ¸ñ·Ï¿¡¼­ Æ®·£Àè¼Ç¿¡ ¼³Á¤ÇÒ ·Î±× ¼öÁØÀ» ¼±ÅÃÇÕ´Ï´Ù. ·Î±× ¼öÁØ ¹× ÅëÇÕ ¹æ¹ýÀÇ ÀÚ¼¼ÇÑ ³»¿ëÀº "·Î±ë »ç¿ë"À» ÂüÁ¶ÇϽʽÿÀ.
  2. ¼­¹ö Àç½ÃÀ۽à ½ÇÆÐÇÑ Æ®·£Àè¼ÇÀ» ÀÚµ¿À¸·Î º¹±¸ÇÏ·Á¸é "Àç½ÃÀ۽à º¹±¸" È®ÀζõÀ» Ç¥½ÃÇÕ´Ï´Ù. Æ®·£Àè¼Ç ¿Ï°á ÇÁ·ÎÅäÄÝÀÇ Å©¸®Æ¼Äà Æ÷ÀÎÆ® µ¿¾È ÀÚ¿øÀ» »ç¿ëÇÒ ¼ö ¾øÀ¸¸é, Æ®·£Àè¼ÇÀº ¿Ï·áµÇÁö ¸øÇÏ°í Æ®·£Àè¼Ç ·Î±× ÆÄÀÏ¿¡ ³²À» ¼ö ÀÖ½À´Ï´Ù. ÀÌ È®ÀζõÀÌ Ç¥½ÃµÇ¾î ÀÖÀ¸¸é ¼­¹ö´Â ¼­¹ö Àç½ÃÀ۽à ¿À·ù°¡ ¹ß»ýÇÑ Æ®·£Àè¼Ç º¹±¸¸¦ ½ÃµµÇÕ´Ï´Ù. °ü·Ã ÀÚ¿ø¿¡ ¿©ÀüÈ÷ Á¢±ÙÇÒ ¼ö ¾øÀ¸¸é ¼­¹ö Àç½ÃÀÛ ½Ã°£ÀÌ Áö¿¬µÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ È®ÀζõÀº ±âº»ÀûÀ¸·Î Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.
  3. ÄÁÅ×ÀÌ³Ê °ü¸® Æ®·£Àè¼ÇÀÌ ÀÖ´Â Enterprise BeanÀÇ °æ¿ì, Æ®·£Àè¼Ç ½Ã°£ ÃÊ°ú(ÃÊ) µî·Ï Á¤º¸ÀÇ °ªÀ» ¼³Á¤ÇÏ¿© Æ®·£Àè¼Ç ½Ã°£ ÃÊ°ú °£°ÝÀ» Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù.
  4. ÀÌ µî·Ï Á¤º¸ÀÇ °ªÀÌ 0À¸·Î ¼³Á¤µÇ¸é Æ®·£Àè¼ÇÀº ½Ã°£ ÃÊ°úµÇÁö ¾Ê½À´Ï´Ù.

    "Æ®·£Àè¼Ç ½Ã°£ ÃÊ°ú(ÃÊ)" Çʵ忡 Æ®·£Àè¼Ç ½Ã°£ ÃÊ°ú °£°ÝÀ» ÁöÁ¤ÇÕ´Ï´Ù. Æ®·£Àè¼ÇÀÌ ÁöÁ¤µÈ ½Ã°£ ³»¿¡ ¿Ï·áµÇÁö ¾ÊÀ¸¸é Æ®·£Àè¼ÇÀº ·Ñ¹éµË´Ï´Ù. ÀÌ ¼Ó¼ºÀÇ °ªÀÌ 0À¸·Î ¼³Á¤µÇ¸é Æ®·£Àè¼ÇÀº ½Ã°£ ÃÊ°úµÇÁö ¾Ê½À´Ï´Ù.

  5. "Æ®·£Àè¼Ç ·Î±× À§Ä¡" Çʵ忡 ·Î±× ÆÄÀÏÀ» ÀúÀåÇÒ µð·ºÅ丮ÀÇ Àý´ë °æ·Î¸¦ ÁöÁ¤ÇÕ´Ï´Ù. »õ·Î ÁöÁ¤ÇÑ Æ®·£Àè¼Ç ·Î±× µð·ºÅ丮¸¦ Àû¿ëÇÏ·Á¸é ¼­¹ö¸¦ Àç½ÃÀÛÇØ¾ß ÇÕ´Ï´Ù.
  6. "¹ß°ßÀû °áÁ¤" µå·Ó´Ù¿î »óÀÚ¿¡¼­ Æ®·£Àè¼Ç¿¡ Àû¿ëÇÒ ¹ß°ßÀû °áÁ¤À» ¼±ÅÃÇÕ´Ï´Ù. ¸í¹éÇÑ °á°ú¸¦ °áÁ¤ÇÒ ¼ö ¾ø´Â °æ¿ì Ç¥½ÃµÈ ¿É¼Ç¿¡¼­ ¿Ï°á ¶Ç´Â ·Ñ¹éÀ» ¼±ÅÃÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥ ¼­¹ö¿¡¼­ º¹±¸ µµÁß Àǽɽº·¯¿î Æ®·£Àè¼ÇÀÇ °á°ú¸¦ °áÁ¤ÇÏ´Â ¹æ¹ýÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¹ß°ßÀû °áÁ¤À» ·Ñ¹éÀ¸·Î ¼³Á¤Çϸé Æ®·£Àè¼ÇÀ» ·Ñ¹éÇÕ´Ï´Ù. ÀÌ·± Æ®·£Àè¼ÇÀ» ¿Ï°áÇÏ´Â °ÍÀÌ Çã¿ëµÇ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù.
  7. "Å° Æ÷ÀÎÆ® °£°Ý(Æ®·£Àè¼Ç)" Çʵ忡 ·Î±×ÀÇ Å° Æ÷ÀÎÆ® ÀÛ¾÷ »çÀÌÀÇ Æ®·£Àè¼Ç °³¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. Å° Æ÷ÀÎÆ® ÀÛ¾÷Àº ¿Ï·áµÈ Æ®·£Àè¼ÇÀÇ Ç׸ñÀ» Á¦°ÅÇÏ°í ÆÄÀÏÀ» ¾ÐÃàÇÏ¿© Æ®·£Àè¼Ç ·Î±× ÆÄÀÏÀÇ Å©±â¸¦ ÁÙÀÔ´Ï´Ù. ÀÌ ¼Ó¼º °ªÀÌ Ä¿Áö¸é Æ®·£Àè¼Ç ·Î±× ÆÄÀÏÀÌ Ä¿ÁöÁö¸¸, Å° Æ÷ÀÎÆ® ÀÛ¾÷ÀÌ ÁÙ¾îµé¾î ¼º´ÉÀÌ ÁÁ¾ÆÁú ¼ö ÀÖ½À´Ï´Ù. ÀÌ °ªÀÌ ÀÛ¾ÆÁö¸é(¿¹¸¦ µé¾î, 100) ·Î±× ÆÄÀÏÀÌ ÀÛ¾ÆÁöÁö¸¸, Å° Æ÷ÀÎÆ® ÀÛ¾÷ ºóµµ°¡ ³ô¾ÆÁ®¼­ ¼º´ÉÀÌ ¾à°£ ³·¾ÆÁú ¼ö ÀÖ½À´Ï´Ù.

¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÑ Æ®·£Àè¼Ç °ü¸®

´ÙÀ½ Àý¿¡¼­ ¼³¸íÇÑ °Íó·³, CLI (Command Line Interface)¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º Æ®·£Àè¼ÇÀ» °ü¸® ¹× ¸ð´ÏÅ͸µÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ ÀýÀº ¸í·ÉÁÙ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÑ Æ®·£Àè¼Ç °ü¸® ¹× ¸ð´ÏÅ͸µ ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.

½ÇÇà ÁßÀÎ Æ®·£Àè¼Ç ³ª¿­

´ÙÀ½ ¸í·ÉÀº ½ÇÇà ÁßÀÎ Æ®·£Àè¼Ç µ¥ÀÌÅ͸¦ ±¸ÇÒ ¶§ »ç¿ëµË´Ï´Ù(multimode¿¡ ÀÖ°í ÀÌ¹Ì »ç¿ëÀÚ À̸§ ¹× ¾ÏÈ£¸¦ ¼³Á¤Çß´Ù°í °¡Á¤ÇÕ´Ï´Ù).

- asadmin> get --monitor
<instanceName>.transaction-service.inflight-tx

´ÙÁß Çà Ãâ·ÂÀº ´ÙÀ½°ú °°½À´Ï´Ù.

Transaction Id State Elapsed Time (ms)

txnid1 Prepared 20

txnid2 Active 100

txnid3 Active 120

... ... ...

Æ®·£Àè¼Ç °ü¸®

½ÇÇà ÁßÀÎ Æ®·£Àè¼Ç ³ª¿­ÀÇ ¿¹¿¡¼­´Â Æ®·£Àè¼Ç ID txn-ids, txnid2 ¹× txnid3·Î Æ®·£Àè¼ÇÀ» ·Ñ¹éÇÑ´Ù°í °¡Á¤ÇÕ´Ï´Ù. ¼±ÅÃÇÑ Æ®·£Àè¼ÇÀ» ·Ñ¹éÇÏ´Â »ùÇà ¸í·ÉÀº ´ÙÀ½ÀÇ ¿¹¿Í °°½À´Ï´Ù.

asadmin> set --monitor <instanceName>.transaction-service.rollback-list=txnid2,txnid3

Æ®·£Àè¼Ç ¼­ºñ½º °íÁ¤

Æ®·£Àè¼Ç ¼­ºñ½º¸¦ °íÁ¤ÇÏ·Á¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.

asadmin> set --monitor <instanceName>.transaction-service.freeze=true

Æ®·£Àè¼Ç ¼­ºñ½º°¡ °íÁ¤µÇ¸é ÀÀ¿ë ÇÁ·Î±×·¥ ¼­ºñ½º ³»ÀÇ Æ®·£Àè¼Ç °ü¸®ÀÚ´Â ¸ðµç ½ÇÇà ÁßÀÎ Æ®·£Àè¼ÇÀÌ ÀϽà Áߴܵ˴ϴÙ. °íÁ¤Àº Á¦Ç° ¹èÆ÷ ½Ã½ºÅÛ¿¡¼­´Â ±ÇÀåÇÏÁö ¾Ê½À´Ï´Ù.

Æ®·£Àè¼Ç ¼­ºñ½º¸¦ °íÁ¤ ÇØÁ¦ÇÏ·Á¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.

asadmin> set --monitor <instanceName>.transaction-service.freeze=false

Æ®·£Àè¼Ç ¼­ºñ½º°¡ ´Ù½Ã µ¿ÀÛ ÁßÀ¸·Î ¼³Á¤µÇ¸é ½Ã½ºÅÛÀº ÁߴܵǾú´ø ÁöÁ¡ºÎÅÍ ´Ù½Ã °è¼ÓÇÕ´Ï´Ù. È°¼º ½Ã½ºÅÛÀ» ³Ê¹« ¿À·¡ °íÁ¤ »óÅ·ΠµÎ¸é ÀϺΠµ¥ÀÌÅͺ£À̽º ¿¬°áÀÌ ½Ã°£ ÃÊ°úµÇ¾î Æ®·£Àè¼ÇÀÌ ·Ñ¹éµÉ ¼ö ÀÖ½À´Ï´Ù.

Æ®·£Àè¼Ç ¸ð´ÏÅ͸µ

½ÇÇà ÁßÀÎ Æ®·£Àè¼Ç µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ¿© Æ®·£Àè¼Ç µ¥ÀÌÅ͸¦ ¸ð´ÏÅ͸µÇÏ·Á¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.

asadmin> get --monitor <instanceName>.transaction-service.*

¸í·ÉÀ» ½ÇÇàÇßÀ» ¶§ È°¼º Æ®·£Àè¼ÇÀÌ ¾øÀ¸¸é ´ÙÀ½ Ãâ·ÂÀ» ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

total-tx-completed = 5

total-tx-rolledback = 2

total-tx-inflight = 0

isFrozen = false

tx-inflight = No active transactions found.

¸í·ÉÀ» ½ÇÇàÇßÀ» ¶§ È°¼º Æ®·£Àè¼ÇÀÌ ÀÖÀ¸¸é ´ÙÀ½ Ãâ·ÂÀ» ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.

total-tx-completed = 5

total-tx-rolledback = 2

total-tx-inflight = 2

isFrozen = false

tx-inflight =

Transaction Id State Elapsed Time(ms)

txnid1 Prepared 500

txnid2 Active 360


ÀÌÀü      ¸ñÂ÷      »öÀÎ      ´ÙÀ½     
Copyright 2003 Sun Microsystems, Inc. ¸ðµç ±Ç¸®´Â ÀúÀÛ±ÇÀÚÀÇ ¼ÒÀ¯ÀÔ´Ï´Ù.