·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
¼­ºí·¿ + JDBC ¿¬µ¿½Ã ÄÚµù °í·Á»çÇ× ¨ê

ÀÌ¿ø¿µ ( javaservice )   2002/04/18
[Áöµð³ÝÄÚ¸®¾Æ]ExceptionÀÌ ¹ß»ýÇßÀ» ¶§µµ ConnectionÀº ´ÝÇô¾ß ÇÑ´Ù

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException, SQLException
{
String id = req.getParameter("id");

Connection conn = DriverManager.getConnection("url...","id","password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("ssselect * from XXX where id = '" + id + "'");
while(rs.next()) {
......
}
rs.close();
stmt.close();
conn.close();
.....
}

À§¿¡¼­ À߸øµÈ °ÍÀº ¹«¾ùÀϱî? Ưº°È÷ À߸øµÈ °ÍÀº ¾ø´Ù. ´ÜÁö SQL¹®Àå¿¡ ¿ÀŸ°¡ ÀÖ´Ù´Â °Í »ÓÀÌ´Ù. SQLExceptionÀ̶ó´Â °ÍÀº Runtime ¶§ ¹ß»ýÇÑ´Ù. DBÀÇ Á¶°ÇÀÌ ¸ÂÁö ¾Ê°Å³ª °³¹ß ±â°£ Áß¿¡ °³¹ßÀÚÀÇ ½Ç¼ö·Î SQL¹®Àå¿¡ À§Ã³·³ ¿ÀŸ¸¦ ÀûÀ» ¼öµµ ÀÖ´Ù. ¹®Á¦´Â ExceptionÀÌ ¹ß»ýÇÏ¸é ¸¶Áö¸· ¶óÀεé Áï, rs.close(), stmt.close(), conn.close()°¡ ¼öÇàµÇÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù.

java.sql.ConnectionÀº reference¸¦ ÀÒ´õ¶óµµ JVM(Java Virtual Machine)ÀÇ GC(Garbage Collection)ÀÇ ´ë»óÀÌ ¾Æ´Ï´Ù. ±×·¸Áö ¾Ê¾Æµµ ¸ðÀÚ¶ó´Â DB¿¬°áÀÚ¿øÀ» ƯÁ¤ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Á¡À¯Çϵµ·Ï ÇÏÁö ¾Ê±â ¶§¹®¿¡ DB ConnectionÀ» ´õÀÌ»ó ¿¬°áÇÏÁö ¸øÇÏ°Ô µÈ´Ù.

µû¶ó¼­ ´ÙÀ½Ã³·³ ExceptionÀÇ ¹ß»ý À¯¹«¿Í »ó°ü¾øÀÌ java.sql.ConnectionÀ» close()ÇÏ´Â ·ÎÁ÷ÀÌ ²À(!) µé¾î°¡¾ß ÇÑ´Ù.

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException, SQLException
{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String id = req.getParameter("id");
try {
conn = DriverManager.getConnection("url...","id","password");
stmt = conn.createStatement();
rs = stmt.executeQuery("sselect * from XXX where id = '" + id + "'");
while(rs.next()) {
......
}
rs.close();
stmt.close();
}
finally {
if ( conn != null ) try {conn.close();}catch(Exception e){}
}
.....
}

Âü°í·Î ½ÇÇÁ·ÎÁ§Æ®ÀÇ Áø´Ü ¹× Æ©´×À» ³ª°¡º¸¸é óÀ½¿¡´Â ÀûÀýÇÑ ÀÀ´ä¼Óµµ°¡ ³ª¿À´Ù°¡ ÀÏÁ¤ÇÑ È½¼ö ÀÌ»óÀ» È£ÃâÇÏ°í ³­ µÚºÎÅÍ ¾öû ÀÀ´ä½Ã°£ÀÌ ´À·ÁÁø´Ù¸é ½ÊÁßÆÈ±¸´Â À§Ã³·³ java.sql.Connection À» ´ÝÁö ¾Ê¾Æ¼­ »ý±â´Â ¹®Á¦ÀÌ´Ù. °¡¿ëÇÑ ¸ðµç ConnectionÀ» ¿¬°áÇØ ´õÀÌ»ó ¿¬°á½Ãų Connection ÀÚ¿øÀ» ÇÒ´çÇÒ ¼ö ¾øÀ» ¶§, ´ëºÎºÐ timewaitÀÌ °É¸®±â ¶§¹®ÀÌ´Ù.

ÀÏ´Ü DB°ü·ÃÇÑ ÀÛ¾÷ÀÌ µé¾î¿À´Â °Í¸¶´Ù timewait¿¡ ºüÁú °æ¿ì, ¾ÖÇø®ÄÉÀ̼Ǽ­¹ö¿¡¼­ µ¿½Ã¿¡ ó¸®ÇÒ ¼ö ÀÖ´Â ÃÖ´ë °¹¼ö¸¸Å­ È£ÃâÀÌ Â÷°îÂ÷°î ½×ÀÌ´Â °Ç ºÒ°ú ¸îºÐ °É¸®Áö ¾Ê´Â´Ù.

±× µÚºÎÅÍ´Â ¾Ö±ÄÀº dummy.jspÁ¶Â÷ È£ÃâÀÌ µÇÁö ¾Ê°Ô µÇ°í, ´©±º°¡´Â "½Ã½ºÅÛ ¶Ç Á×¾ú³×"¶ó¸ç ¹¦ÇÑ ¿ôÀ½À» Áþ°ï ÇÑ´Ù. @

¼­ºí·¿ + JDBC ¿¬µ¿½Ã ÄÚµù °í·Á»çÇ× ¨ç
¼­ºí·¿ + JDBC ¿¬µ¿½Ã ÄÚµù °í·Á»çÇ× ¨è
¼­ºí·¿ + JDBC ¿¬µ¿½Ã ÄÚµù °í·Á»çÇ× ¨é
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
 
 
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨í] Çʼö ¾ÆÀÌ...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨è] ¿ëÀ» ¸¸³ª...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ê] ±âº»±â ¾ø...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ç] °¡½¿ÀÇ ²Þ...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ì] ÇÁ·Î±×·¡¹Ö...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨é] ³ª´®°ú ±³...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ë] »õ·Î¿î ½Ã...
'ÁÖÃãÁÖÃã ¼Ò´Ï' º¸±ÞÇü Ä·ÄÚ´õ ½ÃÀå »ï¼º ¸Í°ø¡¦À¯Æ©ºê ¸ÂÃãÇü 'VM-MX20C' [00:07:48]
ÁøÇà ·ùÁØ¿µ ±âÀÚ, Á¦ÀÛ À¯È¸Çö PD
[ZDNET ¿µ¹®¹æ¼Û]±¸±Û À¥ºê¶ó¿ìÀú '±¸±Û Å©·Ò' º£Å¸¹öÀü °ø°³ [00:01:29]
Áöµð³ÝÄÚ¸®¾Æ ¿µ»óÁ¦ÀÛÆÀ
¡°À¥ Ç¥ÁØÀº ¹«½¼!¡±¡¦IE8¿¡ ´ë...
°øÀÎÀÎÁõüÁ¦, ¿ì¸®¿¡°Ô ÀÓ¹ÚÇÑ ¹Ì...
³×À̹ö´Â ¿Ö '10´ë ÇØÄ¿'¿¡ ´ç...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ç] °¡½¿ÀÇ ²Þ...
"¾×ƼºêX¿Í °øÁ¸ ¸ð»ö"¡¦±¸±Û, ...
'À§ÇÇ Àǹ«È­' ÆóÁö ºÐÀ§±â·Î¡¦
ÀÎÆ÷¹ðÅ© "IPTV ¸Þ½Ã¡ ¼­ºñ½º...
³ª¿ìÄÞ, DDoS Â÷´Ü ±â¼ú ƯÇã
¡®Àå¾ÖÀÎ À¥ Á¢±Ù¼º ¿ì¼ö±â°ü¡¯ ¼±...
°õTV, PMP ´Ù¿î·Îµå ¼­ºñ½º ...
Ä¿³Ø¼±Æ®ÄÚ¸®¾Æ, ºÐ´ç »õ »ç¹«½Ç·Î...
 
 
The Korean edition of 'ZDNet' is published under license from CNET Networks, Inc., San Francisco, CA, USA. Editorial items appearing in 'ZDNet Korea' that were originally published in the US Edition of 'ZDNet', 'CNET', and 'CNET News.com' are the copyright properties of CNET Networks, Inc. or its suppliers.
Copyright ¨Ï 2008 CNET Networks, Inc. All Rights Reserved. 'ZDNet', 'CNET' and 'CNET News.com' are trademarks of CNET Networks, Inc.