IBM Korea Skip to main content
       IBM Ȩ    |  Á¦Ç° & ¼­ºñ½º  |  °í°´Áö¿ø & ´Ù¿î·Îµå  |  È¸¿ø°¡ÀÔ  

Java theory and practice: JTS ÀÌÇØÇϱâ - À帷 µÚÀÇ ¸¶¹ý
¸ñ Â÷:
JTS¶õ ¹«¾ùÀΰ¡?
Åõ¸íÇÑ ÀÚ¿ø ÇÒ´ç
Åõ¸íÇÑ Æ®·£Àè¼Ç Á¦¾î
Åõ¸íÇÑ Æ®·£Àè¼Ç ÀüÆÄ
ÃÖÀûÈ­
°É·Ð
Âü°í ÀÚ·á
ÇÊÀÚ ¼Ò°³
±â»ç¿¡ ´ëÇÑ Æò°¡
°ü·Ã dW ¸µÅ©:
Æ®·£Àè¼Ç ¼Ò°³
VisualAge Generator JavaBeans°ú JSPs¸¦ »ç¿ëÇÏ¿© ±â¾÷ À¥ Æ®·£Àè¼Ç ±¸ÃàÇϱâ
developerWorks newsletter ±¸µ¶Çϱâ
US ¿ø¹® Àбâ
Also in the Java zone:
Æ©Å丮¾ó
Åø ¹× Á¦Ç°
ÄÚµå ¹× ÄÄÆ÷³ÍÆ®
Articles
 
J2EE ÄÁÅ×À̳ʰ¡ Æ®·£Àè¼Ç °ü¸®ÀÇ º¹À⼺À» ¼û±â´Â ¹æ¹ý


Brian Goetz
¼ö¼® ÄÁ¼³ÅÏÆ®, Quiotix Corp
2002³â 4¿ù

Column icon Part 1¿¡¼­ Æ®·£Àè¼ÇÀÌ ¹«¾ùÀÌ¸ç ½Å·Ú¼º ÀÖ´Â ºÐ»ê ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Ãà¿¡ À̵éÀÌ ÇʼöÀûÀÎÁö¿¡ ´ëÇÑ ±âÃÊÀûÀÎ »çÇ×µéÀ» ´Ù·ç¾ú´Ù. À̹ø ȸ¿¡¼­´Â J2EE ¾ÖÇø®ÄÉÀ̼ÇÀÌ Æ®·£Àè¼ÇÀ¸·Î ¾î¶»°Ô ü°èÈ­µÇ¸ç, JTS¿Í J2EE ÄÁÅ×À̳ʰ¡ Æ®·£Àè¼Ç ±¸ºÐ, ¸®¼Ò½º µî·Ï, Æ®·£Àè¼Ç ÀüÆĵîÀ» Æ÷ÇÔÇÑ Æ®·£Àè¼Ç ¼­ºñ½ºµéÀ» ÄÄÆ÷³ÍÆ® ÇÁ·Î±×·¡¸Óµé¿¡°Ô´Â °ÅÀÇ º¸ÀÌÁö ¾Ê°Ô ¸¸µå´Â ¹æ¹ýÀ» °ËÅäÇÏ°Ú´Ù.

Part 1¿¡¼­ Æ®·£Àè¼ÇÀ» °ËÅäÇÏ°í ±×µéÀÇ ±âº» Ư¼ºÀÎ ¿øÀÚ¼º, ÀÏ°ü¼º, °Ý¸®¼º ¹× ¿µ¼Ó¼ºÀ» »ìÆ캸¾Ò´Ù. Æ®·£Àè¼ÇÀº ±â¾÷ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±âÃÊÀûÀÎ ±¸¼º ¿ä¼ÒÀÌ´Ù. Æ®·£Àè¼Ç ¾øÀÌ´Â ³»°áÇÔ¼ºÀ» °®Ãá ±â¾÷ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸ÃàÀÌ °ÅÀÇ ºÒ°¡´ÉÇÒ °ÍÀÌ´Ù. ´ÙÇàÈ÷µµ Java Transaction Service (JTS)¿Í J2EE ÄÁÅ×À̳ʴ ¿©·¯ºÐÀ» À§ÇØ Æ®·£Àè¼Ç °ü¸® ÀÛ¾÷ÀÇ »ó´ç ºÎºÐÀ» ÀÚµ¿ÀûÀ¸·Î ¼öÇàÇϸç, µû¶ó¼­ ¿©·¯ºÐÀº ¿©·¯ºÐÀÇ ÄÄÆ÷³ÍÆ® Äڵ忡 Á÷Á¢ Æ®·£Àè¼Ç ÀÎ½Ä ±â´ÉÀ» ÅëÇÕÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ±× °á°ú´Â °ÅÀÇ ÀÏÁ¾ÀÇ ¸¶¹ýÀ̶ó ÇÒ ¼ö ÀÖ´Ù. ¸î °¡Áö °£´ÜÇÑ ±ÔÄ¢À» µû¸§À¸·Î½á J2EE ¾ÖÇø®ÄÉÀ̼ÇÀº Ãß°¡ÀûÀÎ ÄÄÆ÷³ÍÆ® ÄÚµå ¾øÀÌ Æ®·£Àè¼Ç Àǹ̷ÐÀ» ÀÚµ¿ÀûÀ¸·Î ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ ±ÛÀº Æ®·£Àè¼Ç °ü¸®°¡ ¾î¶»°Ô, ±×¸®°í ¾îµð¿¡¼­ ¼öÇàµÇ´ÂÁö¸¦ º¸¿©ÁÜÀ¸·Î½á ÀÌ ¸¶¹ýÀÇ ÀϺÎÀÇ ½Åºñ¸¦ ¹þ±â´Â µ¥ ¸ñÇ¥¸¦ µÐ´Ù.

JTS¶õ ¹«¾ùÀΰ¡?

JTS´Â ÄÄÆ÷³ÍÆ® Æ®·£Àè¼Ç ¸ð´ÏÅÍÀÌ´Ù. ÀÌ°ÍÀº ¹«½¼ ¶æÀΰ¡? Part 1¿¡¼­ ¿ì¸®´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» ´ë½ÅÇØ ºÐ»êµÇ¾î ÀÖ´Â Æ®·£Àè¼ÇµéÀÇ ½ÇÇàÀ» Á¶Á¤ÇÏ´Â Æ®·£Àè¼Ç ó¸® ¸ð´ÏÅÍ (TPM)¶ó´Â °³³äÀ» ¼Ò°³ÇÏ¿´´Ù. TPMÀº °ÅÀÇ µ¥ÀÌÅͺ£À̽º¸¸Å­ ¿À·¡µÈ °ÍÀÌ´Ù. IBMÀÌ 1960³â´ë ÈĹݿ¡ ÃÖÃÊ·Î CICS¸¦ °³¹ßÇߴµ¥, ÀÌ°ÍÀº Áö±Ýµµ ¿©ÀüÈ÷ »ç¿ëµÇ°í ÀÖ´Ù. °íÀüÀûÀÎ (ȤÀº ÀýÂ÷ÀûÀÎ) TPMÀº Á¤ÀÇµÈ Æ®·£Àè¼ÇµéÀ» Æ®·£Àè¼Ç ÀÚ¿ø (µ¥ÀÌÅͺ£À̽º µî)¿¡ ´ëÇÑ ¿¬¼ÓÀûÀÎ ÀÛ¾÷À¸·Î½á ÀýÂ÷ÀûÀ¸·Î °ü¸®ÇÑ´Ù. CORBA, DCOM, RMI¿Í °°Àº ºÐ»ê °´Ã¼ ÇÁ·ÎÅäÄÝÀÇ ÃâÇöÀ¸·Î Æ®·£Àè¼Ç¿¡ ´ëÇÑ º¸´Ù °´Ã¼ ÁöÇâÀûÀÎ °ßÇØ°¡ ¹Ù¶÷Á÷ÇÏ°Ô µÇ¾ú´Ù. °´Ã¼ ÁöÇâ ÄÄÆ÷³ÍÆ®¿¡ Æ®·£Àè¼ÇÀûÀÎ Àǹ̷ÐÀ» ÁÖ·Á¸é TPM ¸ðµ¨ÀÇ È®ÀåÀÌ ÇÊ¿äÇѵ¥, ¿©±â¿¡¼­´Â Æ®·£Àè¼ÇÀÌ Æ®·£Àè¼ÇÀûÀÎ °´Ã¼¿¡ ´ëÇÑ ¸Þ½îµå¸¦ È£ÃâÇÏ´Â Ãø¸é¿¡¼­ Á¤ÀǵȴÙ. JTS´Â ¹Ù·Î ±×°ÍÀÌ´Ù. ÄÄÆ÷³ÍÆ® Æ®·£Àè¼Ç ¸ð´ÏÅÍ (¶§¶§·Î °´Ã¼ Æ®·£Àè¼Ç ¸ð´ÏÅÍ), Áï CPMÀÌ´Ù.

JTS¿Í J2EEÀÇ Æ®·£Àè¼Ç Áö¿ø ¼³°è´Â CORBA °´Ã¼ Æ®·£Àè¼Ç ¼­ºñ½º (OTS)ÀÇ ¿µÇâÀ» ¸¹ÀÌ ¹Þ¾Ò´Ù. »ç½Ç JTS´Â OTS¸¦ ±¸ÇöÇÏ°í, Æ®·£Àè¼Ç °æ°è¸¦ Á¤ÀÇÇÏ´Â ÇÏÀ§ ·¹º§ APIÀÎ ÀÚ¹Ù Æ®·£Àè¼Ç API¿Í OTS°£ÀÇ ÀÎÅÍÆäÀ̽º ¿ªÇÒÀ» ÇÑ´Ù. »õ·Î¿î °´Ã¼ Æ®·£Àè¼Ç ÇÁ·ÎÅäÄÝÀ» ¸¸µå´Â ´ë½Å OTS¸¦ »ç¿ëÇÏ¸é ±âÁ¸ Ç¥Áص鿡¼­ ±¸ÃàÇÒ ¼ö ÀÖÀ¸¸ç J2EE¿Í CORBA ÄÄÆ÷³ÍÆ®°£ÀÇ È£È¯À» À§ÇÑ ±æÀÌ ¿­¸°´Ù.

¾ð¶æ º¸¸é ÀýÂ÷Àû Æ®·£Àè¼Ç ¸ð´ÏÅÍ¿¡¼­ CPMÀ¸·ÎÀÇ ÀÌÇàÀº ´ÜÁö ¿ë¾îÀÇ º¯È­·Î¸¸ º¸¿©Áø´Ù. ±×·¯³ª Â÷ÀÌ´Â ´õ Å©´Ù. CPM ³»ÀÇ ÇÑ Æ®·£Àè¼ÇÀÌ È®¾àµÇ°Å³ª ·Ñ¹éµÇ¸é Æ®·£Àè¼Ç¿¡ °ü¿©ÇÑ °´Ã¼¿¡ ÀÇÇØ ¼öÇàµÈ ¸ðµç º¯°æ »çÇ×µéÀÌ ÇϳªÀÇ ±×·ìÀ¸·Î È®¾àµÇ°Å³ª Ãë¼ÒµÈ´Ù. ±×·±µ¥ CTMÀº ±× Æ®·£Àè¼Ç °úÁ¤ µ¿¾È °´Ã¼°¡ ¹«¾ùÀ» Çß´ÂÁö¸¦ ¾î¶»°Ô ¾Ë±î? EJB ÄÄÆ÷³ÍÆ®¿Í °°Àº Æ®·£Àè¼Ç ÄÄÆ÷³ÍÆ®µéÀº commit()³ª rollback() ¸Þ½îµå¸¦ °¡Áö°í ÀÖÁö ¾Ê°í ±×µéÀÌ ¼öÇàÇÑ °ÍÀ» Æ®·£Àè¼Ç ¸ð´ÏÅÍ¿¡ ±â·ÏÇÏÁöµµ ¾Ê´Â´Ù. ±×·¯¸é J2EE ÄÄÆ÷³ÍÆ®°¡ ¼öÇàÇÑ ÀÛ¾÷ÀÌ ¾î¶»°Ô Æ®·£Àè¼ÇÀÇ ÀϺΰ¡ µÉ±î?

Åõ¸íÇÑ ÀÚ¿ø µî·Ï

¾ÖÇø®ÄÉÀÌ¼Ç »óÅ´ ÄÄÆ÷³ÍÆ®¿¡ ÀÇÇØ Á¶ÀÛµÇÁö¸¸ ¿©ÀüÈ÷ Æ®·£Àè¼Ç ÀÚ¿ø °ü¸®ÀÚ (¿¹ : µ¥ÀÌÅͺ£À̽º¿Í ¸Þ½ÃÁö Å¥ ¼­¹ö)¿¡ ÀúÀåµÇ¸ç, ÀÌ´Â ºÐ»ê Æ®·£Àè¼Ç¿¡ ÀÚ¿ø °ü¸®ÀÚ·Î µî·ÏµÉ ¼ö ÀÖ´Ù. Part 1¿¡¼­ ¿ì¸®´Â º¹¼öÀÇ ÀÚ¿ø °ü¸®ÀÚ°¡ ÇϳªÀÇ Æ®·£Àè¼Ç¿¡ ¾î¶»°Ô µî·ÏµÇ°í Æ®·£Àè¼Ç °ü¸®ÀÚ¿¡ ÀÇÇØ Á¶Á¤µÉ ¼ö ÀÖ´ÂÁö¿¡ °üÇØ ¼³¸íÇß´Ù. ÀÚ¿ø °ü¸®Àڴ ƯÁ¤ Æ®·£Àè¼Ç°ú ¾ÖÇø®ÄÉÀÌ¼Ç »óÅ º¯È­¸¦ ¿¬°á½ÃÅ°´Â ¹æ¹ýÀ» ¾Ë°í ÀÖ´Ù.

±×·¯³ª ÀÌ°ÍÀº ¿ì¸® Áú¹®ÀÇ Æ÷Ä¿½º¸¦ ÄÄÆ÷³ÍÆ®¿¡¼­ ÀÚ¿ø °ü¸®ÀÚ·Î ¿Å±â´Â °ÍÀÏ »ÓÀÌ´Ù. ÄÁÅ×À̳ʴ ¾î¶² ÀÚ¿øµéÀÌ Æ®·£Àè¼Ç¿¡ °ü¿©Çß´ÂÁö¸¦ ¾î¶»°Ô ¾Ë°í À̵éÀ» µî·Ï½Ãų ¼ö ÀÖÀ»±î? ÀϹÝÀûÀÎ EJB ¼¼¼Ç ºó¿¡¼­ º¼ ¼ö ÀÖ´Â ´ÙÀ½ Äڵ带 °ËÅäÇØ º¸ÀÚ.

Listing 1.ºóÀÌ °ü¸®ÇÏ´Â Æ®·£Àè¼Ç¿¡ ÀÚ¿øÀ» Åõ¸íÇÏ°Ô µî·Ï½ÃÅ°±â


  InitialContext ic = new InitialContext();
  UserTransaction ut = ejbContext.getUserTransaction();
  ut.begin();

  DataSource db1 = (DataSource) ic.lookup("java:comp/env/OrdersDB");
  DataSource db2 = (DataSource) ic.lookup("java:comp/env/InventoryDB");
  Connection con1 = db1.getConnection();
  Connection con2 = db2.getConnection();
  // perform updates to OrdersDB using connection con1
  // perform updates to InventoryDB using connection con2
  ut.commit();

ÀÌ ¿¹Á¦¿¡´Â ÇöÀçÀÇ Æ®·£Àè¼Ç¿¡ JDBC ¿¬°áÀ» µî·Ï½ÃÅ°´Â Äڵ尡 ¾ø´Ù´Â Á¡¿¡ ÁÖ¸ñÇÑ´Ù. ÄÁÅ×À̳ʰ¡ À̸¦ ¼öÇàÇÑ´Ù. ÀÌ°ÍÀÌ ¾î¶»°Ô ÀϾ´ÂÁö¸¦ »ìÆ캸ÀÚ.

¼¼ °¡Áö À¯ÇüÀÇ ÀÚ¿ø °ü¸®ÀÚ

ÇÑ EJB ÄÄÆ÷³ÍÆ®°¡ µ¥ÀÌÅͺ£À̽º³ª ¸Þ½ÃÁö Å¥ ¼­¹ö, ȤÀº ´Ù¸¥ Æ®·£Àè¼Ç ÀÚ¿øµé¿¡ Á¢±ÙÇÏ·Á°í ÇÒ ¶§ ÀÌ ÄÄÆ÷³ÍÆ®´Â ÀÚ¿ø °ü¸®ÀÚ¿¡ ¿¬°áµÈ´Ù (º¸Åë JNDI¸¦ »ç¿ëÇÏ¿©). ´õ±¸³ª J2EE »ç¾çÀº ´ÜÁö ¼¼ À¯ÇüÀÇ Æ®·£Àè¼Ç ÀÚ¿ø¸¸ ÀνÄÇϴµ¥, JDBC µ¥ÀÌÅͺ£À̽º, JMS ¸Þ½ÃÁö Å¥ ¼­¹ö ¹× "JCA¸¦ ÅëÇØ Á¢±ÙµÇ´Â ´Ù¸¥ Æ®·£Àè¼Ç ¼­ºñ½º"°¡ ±×°ÍÀÌ´Ù. ¸¶Áö¸· Ŭ·¡½º¿¡ ÀÖ´Â ¼­ºñ½ºµé (ERP ½Ã½ºÅÛ°ú °°Àº)Àº JCA (J2EE COnnector Architecture)¸¦ ÅëÇØ Á¢±ÙµÇ¾î¾ß ÇÑ´Ù. ÀÌ ÀÚ¿ø À¯Çüµé °¢°¢¿¡ ´ëÇØ, ÄÁÅ×À̳ʳª Á¦°øÀÚ°¡ ÀÚ¿øÀ» Æ®·£Àè¼Ç¿¡ µî·Ï½ÃÅ°´Â °ÍÀ» µ½´Â´Ù.

Listing 1¿¡¼­ con1°ú con2´Â DriverManager.getConnection()¿¡¼­ ¹ÝȯµÇ´Â °Í°ú °°Àº Æò¹üÇÑ JDBC ¿¬°áó·³ º¸ÀδÙ. ¿ì¸®´Â ÀÌ·¯ÇÑ ¿¬°áÀ» JDBC DataSource¿¡¼­ ¾ò´Âµ¥, ÀÌ°ÍÀº JNDI ³»ÀÇ µ¥ÀÌÅÍ ¼Ò½ºÀÇ À̸§À» °Ë»öÇÏ¿© ¾ò´Â´Ù. µ¥ÀÌÅÍ ¼Ò½º¸¦ °Ë»öÇϱâ À§ÇØ ¿ì¸®ÀÇ EJB ÄÄÆ÷³ÍÆ®¿¡¼­ »ç¿ëµÇ´Â À̸§(java:comp/env/OrdersDB)Àº ÄÄÆ÷³ÍÆ®¿¡ ÇÑÁ¤µÈ °ÍÀÌ´Ù. ÄÄÆ÷³ÍÆ® ¹èÄ¡ ±â¼úÀÚÀÇ resource-ref ¼½¼ÇÀº ÀÌ À̸§À» ÄÁÅ×À̳ʰ¡ °ü¸®ÇÏ´Â ¹ü ¾ÖÇø®ÄÉÀ̼ÇÀûÀÎ ÀϺΠDataSourceÀÇ JNDI À̸§°ú ¸ÅÇνÃŲ´Ù.

¼û°ÜÁø JDBC µå¶óÀ̹ö

¸ðµç J2EE ÄÁÅ×À̳ʴ Ʈ·£Àè¼Ç 󸮰¡ °¡´ÉÇÑ Ç® ¹æ½ÄÀÇ DataSource °´Ã¼µéÀ» »ý¼ºÇÒ ¼ö ÀÖÁö¸¸, J2EE »ç¾çÀº ¿©·¯ºÐ¿¡°Ô ±× ¹æ½ÄÀ» º¸¿©ÁÖÁö ¾Ê´Â´Ù. ÀÌ°ÍÀº ½ºÆå ¹ÛÀÇ ÀÏÀ̱⠶§¹®ÀÌ´Ù. J2EE ¹®¼­¸¦ °Ë»öÇØ º¸¸é JDBC µ¥ÀÌÅÍ ¼Ò½º¸¦ »ý¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­´Â ¾Æ¹«°Íµµ ¹ß°ßÇÏÁö ¸øÇÒ °ÍÀÌ´Ù. ¿©·¯ºÐÀº ´ë½Å ¿©·¯ºÐÀÇ ÄÁÅ×À̳ʿ¡ °üÇÑ ¹®¼­¸¦ »ìÆì º¸¾Æ¾ß ÇÒ °ÍÀÌ´Ù. ¿©·¯ºÐÀÇ ÄÁÅ×À̳ʿ¡ µû¶ó, µ¥ÀÌÅÍ ¼Ò½º »ý¼ºÀº µ¥ÀÌÅÍ ¼Ò½º Á¤ÀǸ¦ Ư¼ºÀ̳ª ¼³Á¤ ÆÄÀÏ¿¡ Ãß°¡ÇÏ´Â ÀÛ¾÷À» Æ÷ÇÔÇÒ ¼öµµ ÀÖ°í GUI °ü¸® ÅøÀ» ÅëÇØ ¼öÇàµÉ ¼öµµ ÀÖ´Ù.

°¢ ÄÁÅ×ÀÌ³Ê (ȤÀº PoolMan°ú °°Àº ¿¬°á Ç® ¸Å´ÏÀú)´Â DataSource¸¦ »ý¼ºÇϱâ À§ÇØ ÀÚüÀûÀÎ ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÏ°í JTA ¸¶¹ýÀÌ ¼û°ÜÁö´Â °ÍÀº ÀÌ ¸ÞÄ¿´ÏÁò ³»ÀÌ´Ù. ¿¬°á Ç® °ü¸®ÀÚ´Â ÁöÁ¤µÈ JDBC µå¶óÀ̹ö¿¡¼­ ¿¬°áÀ» ¾òÁö¸¸, ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î ¹ÝȯÇϱâ Àü¿¡ À̸¦ ConnectionÀ» ±¸ÇöÇÏ´Â ¿Ü°üÀ¸·Î Æ÷ÀåÇÏ¿© ¾ÖÇø®ÄÉÀ̼ǰú ±â¹Ý ¿¬°á »çÀÌ¿¡ ÀÚ½ÅÀ» µÐ´Ù. ¿¬°áÀÌ »ý¼ºµÇ°Å³ª JDBC ÀÛ¾÷ÀÌ ¼öÇàµÉ ¶§ wrapper´Â ÇöÀçÀÇ ¾²·¹µå°¡ Æ®·£Àè¼Ç ¸Æ¶ô¿¡¼­ ¼öÇàµÇ°í ÀÖ´ÂÁö¸¦ Æ®·£Àè¼Ç °ü¸®ÀÚ¿¡°Ô ¹°¾îº¸°í Æ®·£Àè¼Ç(Á¸ÀçÇÒ °æ¿ì)¿¡ ConnectionÀ» ÀÚµ¿À¸·Î µî·Ï½ÃŲ´Ù.

´Ù¸¥ À¯ÇüÀÇ Æ®·£Àè¼Ç ÀÚ¿øÀÎ JMS ¸Þ½ÃÁö Å¥¿Í JCA connector´Â »ç¿ëÀÚ¿¡°Ô ÀÚ¿ø µî·ÏÀ» ¼û±â±â À§ÇØ À¯»çÇÑ ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÑ´Ù. ¹èÄ¡½Ã¿¡ J2EE ¾ÖÇø®ÄÉÀ̼ǿ¡ JMS Å¥¸¦ »ç¿ë°¡´ÉÇϵµ·Ï ¸¸µé ¶§ ¿©·¯ºÐÀº ´Ù½Ã Á¦°øÀÚ¿¡ µû¶ó µ¶ÀÚÀûÀÎ ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÏ¿© °ü¸®µÈ JMS °´Ã¼ (Å¥ ¿¬°á ÆÑÅ丮¿Í ¼ö½ÅÁö)¸¦ »ý¼ºÇϴµ¥, À̸¦ JNDI À̸§ °ø°£¿¡ °ø°³ÇÑ´Ù. Á¦°øÀÚ°¡ »ý¼ºÇÑ °ü¸®µÈ °´Ã¼´Â ÄÁÅ×À̳ʰ¡ Á¦°øÇÑ ¿¬°á Ç® °ü¸®ÀÚ¿¡ ÀÇÇØ Ãß°¡µÈ JDBC wrapper¿Í À¯»çÇÑ ÀÚµ¿ µî·Ï Äڵ带 °¡Áö°í ÀÖ´Ù.

Åõ¸íÇÑ Æ®·£Àè¼Ç Á¦¾î

µÎ À¯ÇüÀÇ J2EE Æ®·£Àè¼Ç - ÄÁÅ×À̳ʰ¡ °ü¸®ÇÏ´Â Æ®·£Àè¼Ç°ú ºóÀÌ °ü¸®ÇÏ´Â Æ®·£Àè¼Ç-Àº Æ®·£Àè¼ÇÀ» ½ÃÀÛ½ÃÅ°°í ³¡³»´Â ¹æ¹ýÀÌ Æ²¸®´Ù. ÇÑ Æ®·£Àè¼ÇÀÌ ½ÃÀÛµÇ°í ³¡³ª´Â °÷À» Æ®·£Àè¼Ç ±¸ºÐ (transaction demarcation)À̶ó°í ºÎ¸¥´Ù. Listing 1ÀÇ ¿¹Á¦ ÄÚµå´Â ºóÀÌ °ü¸®ÇÏ´Â Æ®·£Àè¼Ç(¶§·Î ÇÁ·Î±×·¥ÀûÀÎ Æ®·£Àè¼ÇÀ̶ó°í ºÒ¸²)À» º¸¿©ÁØ´Ù. ºóÀÌ °ü¸®ÇÏ´Â Æ®·£Àè¼ÇÀº UserTransaction Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ÄÄÆ÷³ÍÆ®¿¡ ÀÇÇØ ¸í½ÃÀûÀ¸·Î ½ÃÀÛµÇ°í ³¡³­´Ù. UserTransactionÀº ejbContext¸¦ ÅëÇØ EJB ÄÄÆ÷³ÍÆ®¿¡ »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ°í, JNDI¸¦ ÅëÇØ ´Ù¸¥ J2EE ÄÄÆ÷³ÍÆ®¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

ÄÁÅ×À̳ʰ¡ °ü¸®ÇÏ´Â Æ®·£Àè¼Ç (Áï ¼±¾ðÀû Æ®·£Àè¼Ç)Àº ÄÄÆ÷³ÍÆ®ÀÇ ¹èÄ¡ ±â¼úÀÚ ³»¿¡ ÀÖ´Â Æ®·£Àè¼Ç ¼Ó¼º¿¡ µû¶ó ¾ÖÇø®ÄÉÀ̼ÇÀ» ´ë½ÅÇÏ¿© ÄÁÅ×À̳ʿ¡ ÀÇÇØ Åõ¸íÇÏ°Ô ½ÃÀÛµÇ°í ³¡³­´Ù. ¿©·¯ºÐÀº transaction-type ¼Ó¼ºÀ» Container³ª BeanÀ¸·Î ¼³Á¤ÇÔÀ¸·Î¼­ EJB ÄÄÆ÷³ÍÆ®°¡ ºóÀÌ °ü¸®ÇÏ´Â Æ®·£Àè¼ÇÀ̳ª ÄÁÅ×À̳ʰ¡ °ü¸®ÇÏ´Â Æ®·£Àè¼Ç Áö¿ø Áß ¾î¶² °ÍÀ» »ç¿ëÇÒÁö Áö½ÃÇÒ ¼ö ÀÖ´Ù.

ÄÁÅ×À̳ʰ¡ °ü¸®ÇÏ´Â Æ®·£Àè¼ÇÀ¸·Î ¿©·¯ºÐÀº EJB Ŭ·¡½º³ª ¸Þ½îµå ·¹º§¿¡ Æ®·£Àè¼Ç ¼Ó¼ºÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¿©·¯ºÐÀº EJB Ŭ·¡½º¿¡ ´ëÇÑ ±âº» Æ®·£Àè¼Ç ¼Ó¼º ¼¼Æ®¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ°í, ¶ÇÇÑ ´Ù¸¥ ¸Þ½îµåµéÀÌ °¢±â ´Ù¸¥ Æ®·£Àè¼Ç Àǹ̷ÐÀ» °¡Áö°í ÀÖ¾î¾ß ÇÒ °æ¿ì °¢ ¸Þ½îµå¿¡ ´ëÇØ ¼Ó¼ºÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ Æ®·£Àè¼Ç ¼Ó¼ºÀº ¾î¼Àºí¸® µð½ºÅ©¸³ÅÍÀÇ ÄÁÅ×À̳Ê- Æ®·£Àè¼Ç ¼½¼Ç¿¡ ÁöÁ¤µÈ´Ù. ¿¹Á¦ ¾î¼Àºí¸® µð½ºÅ©¸³ÅÍ°¡ Listing 2¿¡ ³ª¿Í ÀÖ´Ù. trans-attribute¿¡ ´ëÇØ Áö¿øµÇ´Â °ªÀº ´ÙÀ½°ú °°´Ù.

  • Supports
  • Required
  • RequiresNew
  • Mandatory
  • NotSupported
  • Never

trans-attribute´Â ¸Þ½îµå°¡ Æ®·£Àè¼Ç ³»ÀÇ ½ÇÇàÀ» Áö¿øÇÏ´ÂÁö, Æ®·£Àè¼Ç¿¡¼­ ¸Þ½îµå°¡ È£ÃâµÇ¾úÀ» ¶§ ÄÁÅ×À̳ʰ¡ ¾î¶² Á¶Ä¡¸¦ ÃëÇØ¾ß ÇÏ´ÂÁö, ±×¸®°í Æ®·£Àè¼Ç ¿ÜºÎ¿¡¼­ È£ÃâµÇ¾úÀ» ¶§ ÄÁÅ×À̳ʰ¡ ¾î¶² Á¶Ä¡¸¦ ÃëÇØ¾ß ÇÏ´ÂÁö¸¦ °áÁ¤ÇÑ´Ù. ÄÁÅ×À̳ʰ¡ °ü¸®ÇÏ´Â Æ®·£Àè¼Ç ¼Ó¼º Áß °¡Àå ÀϹÝÀûÀÎ °ÍÀÌ RequiredÀÌ´Ù. Required°¡ ¼³Á¤µÇ¸é ½ÇÇàÁßÀÎ Æ®·£Àè¼ÇÀº ±× Æ®·£Àè¼Ç¿¡ ¿©·¯ºÐÀÇ ºóÀ» µî·ÏÇÒ °ÍÀÌ´Ù. ±×·¯³ª ½ÇÇà ÁßÀÎ Æ®·£Àè¼ÇÀÌ ¾ø´Ù¸é ÄÁÅ×À̳ʴ ´ç½ÅÀ» À§ÇØ ÇÑ Æ®·£Àè¼ÇÀ» ±¸µ¿ÇÒ °ÍÀÌ´Ù. ¿ì¸®´Â ´Ù¾çÇÑ Æ®·£Àè¼Ç ¼Ó¼ºµé°£ÀÇ Â÷ÀÌ¿Í ¾ðÁ¦ ÀÌµé °¢°¢À» »ç¿ëÇØ¾ß ÇÏ´ÂÁö¸¦ ÀÌ ½Ã¸®ÁîÀÇ Part 3¿¡¼­ °ËÅäÇÒ °ÍÀÌ´Ù.

Listing 2. »ùÇà EJB ¾î¼Àºí¸® µð½ºÅ©¸³ÅÍ

<assembly-descriptor>
  ...
  <container-transaction>
    <method>
      <ejb-name>MyBean</ejb-name>
      <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
  </container-transaction>
  <container-transaction>
    <method>
      <ejb-name>MyBean</ejb-name>
      <method-name>updateName</method-name>
      </method>
   <trans-attribute>RequiresNew</trans-attribute>
  </container-transaction>
  ...
</assembly-descriptor>

°­·ÂÇÏÁö¸¸ À§ÇèÇÑ

Listing 1ÀÇ ¿¹Á¦¿Í´Â ´Þ¸® ¼±¾ðÀû Æ®·£Àè¼Ç ±¸ºÐ¿¡¼­´Â ÄÄÆ÷³ÍÆ® ¸Þ½îµå¿¡ Æ®·£Àè¼Ç °ü¸® Äڵ尡 ¾ø´Ù. ÀÌ Á¡Àº °á°ú·Î ³ª¿À´Â ÄÄÆ÷³ÍÆ®¸¦ ´õ Àб⠽±°Ô ÇÏÁö¸¸ (Æ®·£Àè¼Ç °ü¸® ÄÚµå¿Í µÚ¼¯¿© ÀÖÁö ¾Ê±â ¶§¹®¿¡), ¶Ç´Ù¸¥ ´õ Áß¿äÇÑ ÀÌÁ¡À» °¡Áö°í Àִµ¥, ÄÄÆ÷³ÍÆ®ÀÇ Æ®·£Àè¼Ç Àǹ̷ÐÀÌ ÄÄÆ÷³ÍÆ®ÀÇ ¼Ò½º Äڵ带 ¼öÁ¤ÇÏÁö ¾Ê°í ½ÉÁö¾î´Â ¿©±â¿¡ Á¢±ÙÇÏÁö ¾Ê°íµµ ¾ÖÇø®ÄÉÀÌ¼Ç ¾î¼Àºí¸® ½ÃÁ¡¿¡ º¯°æµÉ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù.

Æ®·£Àè¼Ç ±¸ºÐÀ» ÄÚµå¿Í º°°³·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº ¾ÆÁÖ °­·ÂÇÑ ±â´ÉÀÌÁö¸¸ ¾î¼Àºí¸® ½Ã¿¡ À߸øµÈ °áÁ¤À» ÇÏ¸é ¿©·¯ºÐ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¾ÈÁ¤ÀûÀÌÁö ¸øÇÏ°Ô Çϰųª ±× ¼º´ÉÀ» ½É°¢ÇÏ°Ô ÇØÄ¥ ¼ö ÀÖ´Ù. ÄÁÅ×À̳ʰ¡ °ü¸®ÇÏ´Â Æ®·£Àè¼ÇÀ» ¿Ã¹Ù·Î ±¸ºÐÇϴ åÀÓÀº ÄÄÆ÷³ÍÆ® °³¹ßÀÚ¿Í ¾ÖÇø®ÄÉÀÌ¼Ç ¾î¼Àºí·¯ »çÀÌ¿¡ °øÀ¯µÇ¾î ÀÖ´Ù. ÄÄÆ÷³ÍÆ® °³¹ßÀÚ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ¹èÄ¡ÀÚ°¡ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Æ®·£Àè¼ÇµéÀ» ¾î¶»°Ô ü°èÈ­ÇÒÁö¿¡ ´ëÇØ Çö¸íÇÑ ÆÇ´ÜÀ» ³»¸± ¼ö ÀÖµµ·Ï ÄÄÆ÷³ÍÆ®ÀÇ ¿ªÇÒ¿¡ ´ëÇØ ÃæºÐÇÑ ¹®¼­¸¦ Á¦°øÇØ¾ß ÇÑ´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç ¾î¼Àºí·¯´Â Æ®·£Àè¼ÇÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÀÏ°ü¼ºÀ» ÁöÅ°°í ¼º´ÉÀ» ÇØÄ¡Áö ¾Ê°Ô ±¸ºÐµÉ ¼ö ÀÖµµ·Ï ¾ÖÇø®ÄÉÀÌ¼Ç ³»ÀÇ ÄÄÆ÷³ÍÆ®µéÀÌ ¾î¶»°Ô »óÈ£ÀÛ¿ëÇÏ´ÂÁö¸¦ ÀÌÇØÇØ¾ß ÇÑ´Ù. ¿ì¸®´Â ÀÌ ½Ã¸®ÁîÀÇ Part 3¿¡¼­ ÀÌ ¹®Á¦µéÀ» ¼³¸íÇÏ°Ú´Ù.

Åõ¸íÇÑ Æ®·£Àè¼Ç ÀüÆÄ

µÎ À¯ÇüÀÇ Æ®·£Àè¼Ç ¸ðµÎ¿¡¼­ ÀÚ¿ø ÇÒ´çÀº Åõ¸íÇÏ´Ù. ÄÁÅ×À̳ʴ Ʈ·£Àè¼Ç °úÁ¤ µ¿¾È »ç¿ëµÇ´Â ¾î¶² Æ®·£Àè¼Ç ÀÚ¿øÀÌ¶óµµ ÇöÀçÀÇ Æ®·£Àè¼Ç¿¡ ÀÚµ¿À¸·Î µî·ÏÇÑ´Ù. ÀÌ ÇÁ·Î¼¼½º´Â Listing 1¿¡¼­ ¾ò¾îÁö´Â µ¥ÀÌÅͺ£À̽º ¿¬°á°ú °°Àº Æ®·£Àè¼Ç ¸Þ½îµå »Ó ¾Æ´Ï¶ó ÀÌ°ÍÀÌ È£ÃâÇÏ´Â ¸Þ½îµå, ½ÉÁö¾î´Â ¿ø°Ý ¸Þ½îµå¿¡ ÀÇÇØ »ç¿ëµÇ´Â ÀÚ¿ø±îÁöµµ È®ÀåµÈ´Ù. ÀÌ°ÍÀÌ ¾î¶»°Ô ÀϾ´ÂÁö¸¦ »ìÆ캸ÀÚ.

ÄÁÅ×À̳ʴ Ʈ·£Àè¼ÇÀ» ¾²·¹µå¿Í ¿¬°á½ÃŲ´Ù.

°¡·É °´Ã¼ AÀÇ methodA()°¡ Æ®·£Àè¼ÇÀ» ½ÃÀÛ½ÃÅ°°í, °´Ã¼ BÀÇ methodB() ¸¦ È£ÃâÇÏ¿© JDBC¿¡ ¿¬°áµÇ°í µ¥ÀÌÅͺ£À̽º¸¦ ¾÷µ¥ÀÌÆ®½ÃŲ´Ù°í ÇØ º¸ÀÚ. B¿¡ ÀÇÇØ ¾ò¾îÁø ¿¬°áÀº A°¡ »ý¼ºÇÑ Æ®·£Àè¼Ç¿¡ ÀÚµ¿À¸·Î µî·ÏµÉ °ÍÀÌ´Ù. ÄÁÅ×À̳ʴ ÀÌ°ÍÀ» ÇØ¾ß ÇÒÁö ¾î¶»°Ô ¾Ë¾ÒÀ»±î?

Æ®·£Àè¼ÇÀÌ ÃʱâÈ­µÉ ¶§ Æ®·£Àè¼Ç ¹®¸ÆÀº ½ÇÇà ¾²·¹µå¿Í ¿¬°áµÈ´Ù. A°¡ Æ®·£Àè¼ÇÀ» »ý¼ºÇϸé A°¡ ½ÇÇàÇÏ°í ÀÖ´Â ¾²·¹µå°¡ Æ®·£Àè¼Ç¿¡ ¿¬°áµÈ´Ù. ·ÎÄà ¸Þ½îµå È£ÃâÀº È£ÃâÀÚ¿Í µ¿ÀÏÇÑ ¾²·¹µå¿¡¼­ ½ÇÇàµÇ±â ¶§¹®¿¡ A°¡ È£ÃâÇÑ ¸Þ½îµå ¿ª½Ã ±× Æ®·£Àè¼ÇÀÇ ¹®¸Æ ³»¿¡ ÀÖÀ» °ÍÀÌ´Ù.

¿ø°ÝÁöÀÇ ½ºÄÌ·¯Æ° °´Ã¼

°´Ã¼ B°¡ ½ÇÁ¦·Î ´Ù¸¥ ¾²·¹µå, ½ÉÁö¾î´Â ´Ù¸¥ JVM¿¡¼­ ¼öÇàµÇ°í ÀÖ´Â EJB ÄÄÆ÷³ÍÆ®¿¡ ´ëÇÑ ½ºÅÓÀ̶ó¸é ¾î¶°ÇÑ°¡? ³î¶ø°Ôµµ, ¿ø°Ý °´Ã¼ B°¡ Á¢±ÙÇÏ´Â ÀÚ¿øµéÀÌ ¿©ÀüÈ÷ ÇöÀçÀÇ Æ®·£Àè¼Ç¿¡ µî·ÏµÇ¾î ÀÖ´Ù. EJB °´Ã¼ ½ºÅÓ (È£ÃâÀÚÀÇ ¹®¸Æ¿¡¼­ ½ÇÇàµÇ´Â ºÎºÐ), EJB ÇÁ·ÎÅäÄÝ (IIOP»çÀÇ RMI) ¹× ¿ø°ÝÁö¿¡ ÀÖ´Â ½ºÄÌ·¯Æ° °´Ã¼´Â ¸ðµÎ ÈûÀ» ÇÕÃÄ ÀÌ°ÍÀÌ Åõ¸íÇÏ°Ô ¹ß»ýµÇµµ·Ï ÇÑ´Ù. ½ºÅÓÀº È£ÃâÀÚ°¡ Æ®·£Àè¼ÇÀ» ¼öÇàÇÏ°í ÀÖ´ÂÁö¸¦ °áÁ¤ÇÑ´Ù. ¼öÇàÇÏ°í ÀÖ´Ù¸é Æ®·£Àè¼Ç ID, Áï Xid°¡ ¸Þ½îµå ¸Å°³º¯¼ö¿Í ÇÔ²² IIOP È£ÃâÀÇ ÀϺηΠ¿ø°Ý °´Ã¼¿¡ ÀüÇØÁø´Ù. (IIOP´Â CORBA ¿ø°Ý È£Ãâ ÇÁ·ÎÅäÄݷνá, Æ®·£Àè¼Ç ¹®¸ÆÀ̳ª º¸¾È ¹®¸Æ°ú °°Àº ½ÇÇà ¹®¸ÆÀÇ ´Ù¾çÇÑ ¿ä¼Ò¸¦ Àü´ÞÇϱâ À§ÇØ Á¦°øµÈ´Ù. (Âü°íÀÚ·á) È£ÃâÀÌ Æ®·£Àè¼ÇÀÇ ÀϺζó¸é ¿ø°Ý ½Ã½ºÅÛ¿¡ ÀÖ´Â ½ºÄÌ·¯Æ° °´Ã¼°¡ ¿ø°Ý ¾²·¹µåÀÇ Æ®·£Àè¼Ç ¹®¸ÆÀ» ÀÚµ¿À¸·Î ¼³Á¤ÇÏ¿©, ½ÇÁ¦ ¿ø°Ý ¸Þ½îµå°¡ È£ÃâµÇ¾úÀ» ¶§ ÀÌ°ÍÀÌ ÀÌ¹Ì Æ®·£Àè¼ÇÀÇ ÀϺΰ¡ µÇ¾î ÀÖ´Ù. (½ºÅÓ°ú ½ºÄÌ·¯Æ° °´Ã¼´Â ¶ÇÇÑ ÄÁÅ×À̳ʰ¡ °ü¸®ÇÏ´Â Æ®·£Àè¼ÇÀÇ ½ÃÀÛ°ú È®¾àÀ» °ü¸®ÇÑ´Ù.)

Æ®·£Àè¼ÇÀº EJB ÄÄÆ÷³ÍÆ®, ¼­ºí¸´, JSP ÆäÀÌÁö (ȤÀº ÄÁÅ×À̳ʰ¡ Áö¿øÇÒ °æ¿ì ¾ÖÇø®ÄÉÀÌ¼Ç Å¬¶óÀ̾ðÆ®)µî ¾î¶² J2EE ÄÄÆ÷³ÍÆ®¿¡ ÀÇÇؼ­µµ ÃʱâÈ­µÉ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ¿äûÀÌ ÀÖÀ» ¶§ ¿©·¯ºÐ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¼­ºí¸´À̳ª JSP ÆäÀÌÁö¿¡¼­ Æ®·£Àè¼ÇÀ» ½ÃÀÛ½Ãų ¼ö ÀÖ°í ¼­ºí¸´À̳ª JSP ÆäÀÌÁö ³»¿¡¼­ ÀϺΠ󸮸¦ ¼öÇàÇÒ ¼ö ÀÖ°í ¿©·¯ ¼­¹ö»óÀÇ ¿£ÅÍƼ ºó°ú ¼¼¼Ç ºó¿¡ ÆäÀÌÁö ·ÎÁ÷ÀÇ ÀϺηΠÁ¢±ÙÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ ¸ðµç ÀÛ¾÷µéÀÌ Åõ¸íÇÏ°Ô ÇÑ Æ®·£Àè¼ÇÀÇ ºÎºÐÀÌ µÇµµ·Ï ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. ±×¸² 1Àº Æ®·£Àè¼Ç ¹®¸ÆÀÌ ¼­ºí¸´¿¡¼­ EJB·ÎÀÇ ½ÇÇà °æ·Î¸¦ µû¶ó°¡´Â ¹æ½ÄÀ» º¸¿©ÁØ´Ù.

±×¸² 1. ÇÑ Æ®·£Àè¼Ç ³»ÀÇ ¿©·¯ ÄÄÆ÷³ÍÆ®µé
Multiple components in a single transaction

ÃÖÀûÈ­

ÄÁÅ×À̳ʰ¡ Æ®·£Àè¼ÇÀ» °ü¸®Çϵµ·Ï Çϸé ÄÁÅ×À̳ʴ ¿ì¸®¸¦ À§ÇØ Æ¯Á¤ÇÑ ÃÖÀûÈ­ °áÁ¤À» ³»¸± ¼ö ÀÖ´Ù. ±×¸² 1¿¡¼­ ¿ì¸®´Â ÇϳªÀÇ ¼­ºí¸´°ú ¿©·¯ °³ÀÇ EJB ÄÄÆ÷³ÍÆ®°¡ ÇÑ Æ®·£Àè¼ÇÀÇ ¹®¸Æ ³»¿¡¼­ µ¥ÀÌÅͺ£À̽º¿¡ Á¢±ÙÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù. °¢°¢Àº µ¥ÀÌÅͺ£À̽º·ÎÀÇ ConnectionÀ» ¾ò´Â´Ù. ÀÌ°ÍÀº °¢°¢ÀÌ Á¤È®È÷ µ¿ÀÏÇÑ µ¥ÀÌÅͺ£À̽º¿¡ Á¢±ÙÇÏ°í ÀÖ´Â °æ¿ìÀÏ ¼ö ÀÖ´Ù. JTS´Â ´Ù¸¥ ÄÄÆ÷³ÍÆ®µé·ÎºÎÅÍ µ¿ÀÏÇÑ ÀÚ¿øÀ¸·Î ¿©·¯ ¿¬°áÀÌ ÀÌ·ç¾îÁø °æ¿ì¶óµµ ¿©·¯ ÀÚ¿øÀÌ Æ®·£Àè¼Ç¿¡ °ü¿©ÇÏ°í ÀÖ´ÂÁö ¾Æ´ÑÁö¸¦ ÃßÀûÇÒ ¼ö ÀÖ°í Æ®·£Àè¼ÇÀÇ ½ÇÇàÀ» ÃÖÀûÈ­ÇÒ ¼ö ÀÖ´Ù. Part 1ÀÇ ³»¿ëÀ» ȸ»óÇغ¸¸é ¿©·¯ ÀÚ¿ø °ü¸®ÀÚµéÀ» ÇϳªÀÇ Æ®·£Àè¼Ç¿¡ Âü¿©½ÃÅ°·Á¸é 2´Ü°è È®¾à ÇÁ·ÎÅäÄÝÀÇ »ç¿ëÀÌ ÇÊ¿äÇѵ¥, ÀÌ°ÍÀº ´ÜÀÏ ÀÚ¿ø °ü¸®ÀÚ°¡ »ç¿ëÇÏ´Â 1´Ü°è È®¾àº¸´Ù ÈξÀ ºñ½Î´Ù. JTS´Â ´Ü ÇϳªÀÇ ÀÚ¿ø °ü¸®ÀÚ°¡ Æ®·£Àè¼Ç¿¡ µî·ÏµÇ¾î ÀÖ´ÂÁö¸¦ °áÁ¤ÇÒ ¼ö ÀÖ´Ù. Æ®·£Àè¼Ç¿¡ °ü¿©ÇÏ°í ÀÖ´Â ¸ðµç ÀÚ¿øµéÀÌ µ¿ÀÏÇÏ´Ù°í ÃßÀûÇÒ °æ¿ì 2´Ü°è È®¾àÀ» °Ç³Ê ¶Ù°í ÀÚ¿ø °ü¸®ÀÚ°¡ ½º½º·Î Æ®·£Àè¼ÇÀ» ó¸®Çϵµ·Ï ÇÑ´Ù. by itself.

°á·Ð

Åõ¸íÇÑ Æ®·£Àè¼Ç Á¦¾î, ÀÚ¿ø ÇÒ´ç ¹× Æ®·£Àè¼Ç ÀüÆĸ¦ °¡´ÉÄÉ ÇÏ´Â ¸¶¹ýÀº JTSÀÇ ºÎºÐÀÌ ¾Æ´Ï°í, ´ë½Å À帷 µÚ¿¡¼­ J2EE ¾ÖÇø®ÄÉÀ̼ÇÀ» ´ë½ÅÇØ J2EE ÄÁÅ×À̳ʰ¡ JTA¿Í JTS ¼­ºñ½º¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁöÀÇ ÀϺκÐÀÌ´Ù. ÀÌ·¯ÇÑ ¸¶¹ýÀÌ Åõ¸íÇÏ°Ô ÀϾµµ·Ï Çù·ÂÇÏ´Â ¼ö¸¹Àº ¿£ÅÍƼµéÀÌ À帷 µÚ¿¡ ÀÖ´Ù. EJB ½ºÅÓ°ú ½ºÄÌ·¯Æ°, ÄÁÅ×ÀÌ³Ê º¥´õ°¡ Á¦°øÇÏ´Â JDBC µå¶óÀ̹ö wrapper. µ¥ÀÌÅͺ£À̽º º¥´õ°¡ Á¦°øÇÏ´Â JDBC µå¶óÀ̹ö, JMS provider ¹× JCA connectersµéÀÌ ±×°ÍÀÌ´Ù. ÀÌ ¿£ÅÍƼµé ¸ðµÎ°¡ Æ®·£Àè¼Ç °ü¸®ÀÚ¿Í »óÈ£ÀÛ¿ëÇϱ⠶§¹®¿¡ ¿©·¯ºÐÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç Äڵ尡 À̸¦ ¼öÇàÇÒ ÇÊ¿ä°¡ ¾ø´Ù.

Part 3¿¡¼­ ¿ì¸®´Â J2EE ¹®¸Æ ³»¿¡¼­ Æ®·£Àè¼ÇÀ» °ü¸®ÇÏ´Â °Í°ú °ü·ÃµÈ ¸î °¡Áö ½ÇÁúÀûÀÎ »çÇ×µé - Æ®·£Àè¼Ç ±¸ºÐ ¹× °Ý¸®-°ú ¾ÖÇø®ÄÉÀÌ¼Ç ¿µ¼Ó¼º, ¾ÈÁ¤¼º ¹× ¼º´É¿¡ ÀÌ°ÍÀÌ ¹ÌÄ¡´Â ¿µÇâÀ» »ìÆ캸°Ú´Ù.

Âü°íÀÚ·á

ÇÊÀÚ ¼Ò°³
Brian Goetz´Â ¼ÒÇÁÆ®¿þ¾î ÄÁ¼³ÅÏÆ®À̸ç Áö³­ 15³â°£ Àü¹®ÀûÀÎ ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ·Î ÀÏÇØ¿Ô´Ù. ±×´Â Ķ¸®Æ÷´Ï¾ÆÁÖ Los Altos ¼ÒÀç ¼ÒÇÁÆ®¿þ¾î °³¹ß ¹× ÄÁ¼³Æà ¾÷üÀÎ Quiotix»çÀÇ ¼ö¼® ÄÁ¼³ÅÏÆ®ÀÌ´Ù.



ÀÌ ±â»ç¿¡ ´ëÇÏ¿© ¾î¶»°Ô »ý°¢ÇϽʴϱî?

Á¤¸» ÁÁ´Ù (5) ÁÁ´Ù (4) ±×Àú±×·¸´Ù (3) ¼öÁ¤º¸¿ÏÀÌ ÇÊ¿äÇÏ´Ù(2) ÇüÆí¾ø´Ù (1)

  È¸»ç¼Ò°³  |  °³Àκ¸È£Á¤Ã¥  |  ¹ý·ü  |  ¹®ÀÇ