ÃֽŠ°Ô½Ã±Û(OS/WAS)
2023.12.18 / 14:14

Could not close JDBC Connection java.sql.SQLException: Already closed.

XMaLL°ü¸®ÀÚ
Ãßõ ¼ö 30

SSM ÇÁ·ÎÁ§Æ®¸¦ ½ÃÀÛÇÑ ÈÄ ´Ù½Ã ¾×¼¼½ºÇÏÁö ¾ÊÀ¸¸é ´ÙÀ½°ú °°ÀÌ µ¥ÀÌÅͺ£À̽º ¿¬°á ½Ã°£ ÃÊ°ú ¿À·ù°¡ º¸°íµË´Ï´Ù.

Could not close JDBC Connection java.sql.SQLException: Already closed.

Caused by: java.net.SocketTimeoutException: Read timed out

ÀÌ ÇÁ·ÎÁ§Æ®´Â dbcp ¿¬°á Ç®À» »ç¿ëÇÏÁö¸¸, ÀÌÀü ÇÁ·ÎÁ§Æ®·Î ÀÎÇØ ÀÌÀü µ¿·á´Â ´ÙÀ½°ú °°ÀÌ ApplicationContext.xml ±âº» ±¸¼º¸¸ ¼öÇàÇß½À´Ï´Ù.

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
   <property name="driverClassName" value="${driverClassName}" />
   <property name="username" value="${username}" />
   <property name="password" value="${password}" />
   <property name="url" value="${url}" />
</bean>

¹®Á¦ ÇØ°á

±¸¼º ¸Å°³ º¯¼ö ¼öÁ¤

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
   <property name="driverClassName" value="${driverClassName}" />
   <property name="username" value="${username}" />
   <property name="password" value="${password}" />
   <property name="url" value="${url}" />
   <!--initialSize: ¿¬°á ÃʱâÈ­-->
   <property name="initialSize" value="5"/>
   <!--maxIdle: ÃÖ´ë À¯ÈÞ ¿¬°á-->
   <property name="maxIdle" value="10"/>
   <!--minIdle: ÃÖ¼Ò À¯ÈÞ ¿¬°á-->
   <property name="minIdle" value="5"/>
   <!--maxActive: ÃÖ´ë ¿¬°á ¼ö-->
   <property name="maxActive" value="15"/>
   <!--removeAbandoned: ½Ã°£ ÃÊ°ú ¿¬°áÀ» ÀÚµ¿À¸·Î ÀçÈ°¿ëÇÒÁö ¿©ºÎ-->
   <property name="removeAbandoned" value="true"/>
   <!--removeAbandonedTimeout: ½Ã°£ ÃÊ°ú(ÃÊ)-->
   <property name="removeAbandonedTimeout" value="180"/>
   <!--maxWait: ½Ã°£ ÃÊ°ú ´ë±â ½Ã°£(¹Ð¸®ÃÊ) 6000¹Ð¸®ÃÊ/1000µ¿ÀÏÇÑ60µÎ¹ø°-->
   <property name="maxWait" value="3000"/>
   <property name="validationQuery">
      <value>SELECT 1</value>
   </property>
   <property name="testOnBorrow">
      <value>true</value>
   </property>
</bean>

ÁÖ¿ä Âü°í »çÇ×:

  • TestOnBorrow=falseÀÎ °æ¿ì Ç®ÀÇ ¿¬°á °¡¿ë¼ºÀÌ °¨ÁöµÇÁö ¾Ê±â ¶§¹®¿¡ ¿¬°á Ç®ÀÇ ¿¬°áÀÌ µ¥ÀÌÅͺ£À̽º¿¡ ÀÇÇØ ´ÝÈ÷´Â °æ¿ì ¾ÖÇø®ÄÉÀ̼ÇÀº ¿¬°á Ç® getConnectionÀ» ÅëÇØ ÀÌ·¯ÇÑ »ç¿ëÇÒ ¼ö ¾ø´Â ¿¬°áÀ» ¾òÀ» ¼ö ÀÖÀ¸¸ç, ÀÌ·¯ÇÑ ¿¬°áÀÌ ´Ù¸¥ ½º·¹µå¿¡ ÀÇÇØ ÀçÈ°¿ëµÇÁö ¾ÊÀ¸¸é ¿¬°á Ç®¿¡ ÀÇÇØ Á¦°ÅµÇ°Å³ª ´Ù½Ã ¸¸µé¾îÁöÁö ¾Ê°í ¿¬°á Ç®ÀÇ ÇÒ´ç·®À» Â÷ÁöÇÕ´Ï´Ù.

ÂüÁ¶ ¸µÅ©: DBCP ¿¬°á Ç® TestOnBorrowÀÇ ÇÍ _seaboat - ¹Ù´Ù À§ÀÇ ¹«·á º¸Æ®

±â»çÀÇ Áö½Ä Æ÷ÀÎÆ®´Â °ø½Ä Áö½Ä ÆÄÀÏ°ú ÀÏÄ¡Çϸç Xi °ü·Ã Áö½ÄÀ» Ãß°¡·Î ¹è¿ï ¼ö ÀÖ½À´Ï´Ù
JDBC¸¦ »ç¿ëÇÑ Java ½ºÅ³ Æ®¸® ÀÛ¾÷ µ¥ÀÌÅͺ£À̽º JDBC °³¿ä137371 »ç¶÷µéÀº ü°èÇÐÀÇ Xi¿¡ ÀÖ½À´Ï´Ù.