2017-03-29 2 views
1

스프링 부트 응용 프로그램에서 HikariCP 용 JMX MBean을 사용하는 방법은 무엇입니까?스프링 부트 응용 프로그램에서 HikariCP 용 JMX MBean을 사용하는 방법은 무엇입니까?

@SpringBootApplication 
public class App() { ... } 

그리고 다른 클래스 : :이 같은 코드가 자바 미션 컨트롤 (또는 JMX 콘솔) 톱에서

@Configuration 
public class DatabaseCfg() { 
@Bean 
@ManagedOperation 
public DataSource ds (@Value("${hikari.proprerties}") String config) { 
HikariConfig hikariConfig = new HikariConfig(config); 
return new HikariDataSource(hikariConfig); 
} 

은 데이터 소스는 콩 관리, HikariCP에 대한하지 JMX MBean에 ( link). 그것을 추가 할 수 있습니까?

+0

프레임 워크를 사용하지 않고 Spring Boot를 out-smart하려고 시도하고 있습니다. Spring Boot는 데이터 소스를 구성합니다 (자동으로 응용 프로그램 속성에 적절한 종속성과 설정을 추가합니다). –

답변

0

저는 hikariConfig에서 몇 가지 추가 설정을해야한다고 생각합니다. 구성에 MBean을 등록하고 풀 이름을 설정해야합니다.

HikariConfig hiakriConfig = new HikariConfig(config); 
hikariConfig.setRegisterMbeans(true); 
kikariConfig.setPoolName("my-pool-1"); 

네, 분명히 속성을 통해 이들을 구동 할 수도 있습니다. 목록에 없으므로 등록 정보 파일에 포함시키는 것이 확실하지 않습니다. 또한 @Value ("$ {ds.proprerties}")는 @Value ("$ {ds.properties}")가되어야한다는 맞춤법 속성이 잘못되었음을 유의하십시오. 그러나 실제로 변수 이름을 어떻게 지었는지는 잘 모르겠습니다. 속성 파일을 가지고 있는지 확인하십시오. 모든 속성을 설정하고자하는 곳이 어디인지 다시 확인하고 싶을 수도 있습니다.

+0

Thanx!하지만 작동하지 않습니다. ds.properties의 이름이 hikari.properties로 변경되어 오도하지 않게되었습니다. 속성을이 파일에서 문제없이 읽습니다. 코드의 경우 hikariConfig.setRegisterMbeans (true); , JMX가 기본적으로 스프링 부트 (@SpringBootApplication annotation)에서 사용 가능하므로 애플리케이션을 시작할 때 이미 등록 된이 Bean을 throw합니다. – BlackJonnie

관련 문제