mysql을 사용하여 사이트를 구축하였습니다.
그 사이트는 방문객이 얼마 없어서 하루에 3-5명 정도 접속을 합니다.
가끔씩 nullpointexeption 에러가 뜨면서 사이트가 중지 되길래 톰캣 로그를 살펴 보았습니다.
다음은 에러가 나는 시점의 톰캣 로그 입니다.
db >에러 The last packet successfully received from the
server was44088 seconds ago.The last packet sent successfully to the server was 44088 seconds ago,
which is longer than the server configured value of 'wait_timeout'.
You should consider either expiring and/or testing connection validity before use in your application,
increasing the server configured values for client timeouts, or using the Connector/J connection property
'autoReconnect=true' to avoid this problem.
로그상에서 보면 'wait_timeout' 설정값보다 접속 딜레이 타임이 커서 생기는 오류인 것 같아서 톰캣 ROOT.XML에 부분에 'autoReconnect=true' 를 추가 하였습니다. (JNDI 사용)
다음은 ROOT.XML의 DB커넥 설정 부분입니다.
<Resource
name="jdbc/MySqlPool"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://211.34.xxx.xxx:3306/xxx?autoReconnect=true" ----> IP와 database명은 제가 임의로 바꾼겁니다. ID와 PW도 임의로 설정
username="xxx"
password="xxx"
connectionProperties="SetBigStringTryClob=true"
maxActive="25"
maxIdle="5"
maxWait="10000"
/>
에러가 나는 부분은 방문객의 IP와 날짜를 조합하여 방문객 수를 인서트 하는 부분입니다.
당최 왜 에러가 나는지 모르겠네여..ㅠㅠ
고수님들의 조언 부탁드립니다.
참고로 버전은 mysql-5.0.51b
톰캣 6.0 입니다
jdk는 1.5 버전이구여...ㅠㅠ
|