문제 해결하기
Active DB Connection이 안 보여요.

대시보드에서 Active DB Connection 정보가 보이지 않는 경우, 애플리케이션이 직접 데이터소스를 연결하여 사용하고 있기 때문입니다.
이 정보를 모니터링하려면, 애플리케이션을 수정하여 WAS(Web Application Server)에서 제공하는 데이터소스를 사용하도록 변경해야 합니다.
지원되는 데이터소스
- Apache Tomcat
- JBoss EAP(Wildfly)
- Weblogic
- JEUS
- Regin
- HikariCP (애플리케이션에서 사용중인 데이터소스 라이브러리가
HikariCP라면 MBean 활성화)
WAS 데이터소스로 변경하는 방법(JNDI Lookup)
- Spring(XML)
- Spring(Java)
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:/comp/env/egovDS" /> ## Apache Tomcat에 egovDS라는 Resource 선언 필요
</bean>
@Bean
public DataSource dataSource() {
DataSource ds = null;
try {
JndiObjectFactoryBean factoryBean = new JndiObjectFactoryBean();
factoryBean.setJndiName("java:comp/env/egovDS");
factoryBean.setProxyInterface(DataSource.class);
factoryBean.setLookupOnStartup(false);
factoryBean.afterPropertiesSet();
ds = (DataSource) factoryBean.getObject();
} catch (NamingException e) {
logger.error("===== Datasource connection failure", e);
}
return ds;
}
Apache Tomcat Datasource 예제
설정 방식은 WAS 벤더마다 다르므로, 담당자에게 문의해 주세요.
<Resource name="egovDS"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.mariadb.jdbc.Driver"
url="jdbc:mariadb://192.168.23.53:3306/egovdb"
username="root"
password="test"
maxActive="10"
maxIdle="10"
minIdle="0"
initialSize="0"
maxWait="10000"
validationQuery="SELECT 1"
validationQueryTimeout="60"
testOnBorrow="true"
testWhileIdle="false"
testOnReturn="false"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"
defaultAutoCommit="false"
jmxEnabled="true"
/>