Table of Contents |
---|
...
TOMCAT 연동시 주의사항에 대해 설명한다.
...
문제의 증상
Tomcat log (version 6)
Code Block | ||||
---|---|---|---|---|
| ||||
--- Check the statement (query failed).
--- Cause: java.sql.SQLException: [0]:Failure to find statement; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in maps/CommonSqlMap.xml.
--- The error occurred while applying a parameter map.
--- Check the Common.getIservSp-InlineParameterMap.
--- Check the statement (query failed).
--- Cause: java.sql.SQLException: [0]:Failure to find statement
|
정상적인 경우
Code Block | ||||
---|---|---|---|---|
| ||||
Tomcat log (version 6)
[0001][14:14:31 386][ 2][ 0] GET-CONNECTION[org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection] [1 ms]
|
확인 방법
Code Block | ||||
---|---|---|---|---|
| ||||
$CATALINA_HOME/conf/server.xml 파일 내용 중 아래 부분의 주석을 제거하신 후 Tomcat을 재 시작하여 $CATALINA_HOME/logs/tomcat.log 를 확인합니다.
변경전>
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
변경후>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="%a %b %t %s %D %r " resolveHosts="false"/>
|
참고 : http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html
권장 Tomcat 설정 값
| 환경1 | 환경2 | 환경3 |
---|---|---|---|
JDK Ver | 1.5 | 1.6 | 1.6 |
Tomcat Ver | 6 (dbcp ver 1.3) | 6 (dbcp ver 1.3) | 7 (dbcp ver 1.4) |
testOnBorrow | TRUE 만 권장 (DefalutDefault) | True/False | True/False |
poolPrepareStatements | FALSE 만 권장 (DefalutDefault) | True/False | True/False |
Result | testOnBorrow=False, | 권장 | 권장 |
...
DBCP를 이용하여 connection을 처리할때 문제점이 하나 있는데 바로 웹어플리케이션에서 명시적으로 ResultSet, Statement, Connection을 close해줘야 한다는 것이다. 만약 웹어플리케이션에서 이러한 resource를 close하는 것을 실패했다면 이후에 resource들을 재사용할 수 없게 된다. 이러한 현상을 Connection pool leak이라고 부르며, connection pool leak이 지속된다면 최종에는 이용가능한 connection이 모두 없어지게 될 것이다. 이러한 문제를 막기위해 DBCP에서 문제가 발생하여 버려진 connection을 복구하고 로깅하는 방법을 제공하는데 다음의 속성을 설정하면 된다.
Code Block | ||||
---|---|---|---|---|
| ||||
removeAbandoned="true"
|