나는 Ibatis와 C3P0 연결 풀과 함께 Spring 프레임 워크를 사용하는 응용 프로그램을 만들고 있습니다. 이 시스템은 약 12 개의 별도 데이터베이스에 연결됩니다.org.springframework.jdbc.CannotGetJdbcConnectionException에 대한 JDBC 연결 정보를 기록하는 방법
데이터베이스 중 하나에 도달 할 수 없으면 Spring에서 생성 된 로그 파일에 스택 추적을 얻습니다 (아래 참조). 그러나이 로깅에는 데이터베이스에 도달 할 수없는 매우 중요한 정보가 누락되어 있습니다.
기본적으로 연결 오류가 발생하면 jdbc 연결 문자열 (암호는 필요하지 않음)을 기록합니다. Spring에 이것을 기록하도록하는 쉬운 방법이 있습니까?
Invocation of init method failed; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy.getConnection(TransactionAwareDataSourceProxy.java:109)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:183)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:242)
....
c3p0의 버전은 무엇입니까? – Bozho
c3p0 버전 0.9.1.2입니다. – Rolf
예외를 캡처하고 데이터 소스 정보 옵션을 인쇄하도록 코드를 리팩터링합니까? – gerrytan