Open kolchanov opened 5 years ago
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jmx.support.RegistrationPolicy;
import org.springframework.management.jmx.SimpleJmxBeanExporter;
import com.zaxxer.hikari.HikariDataSource;
@Configuration
public class DataSourceConfig {
@Bean
public HikariDataSource dataSource() {
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl("jdbc:oracle:thin:@your-database-url:port:service");
dataSource.setUsername("your-username");
dataSource.setPassword("your-password");
dataSource.setMaximumPoolSize(200);
dataSource.setMinimumIdle(10);
dataSource.setConnectionTimeout(30000);
dataSource.setIdleTimeout(600000);
dataSource.setMaxLifetime(1800000);
dataSource.setConnectionTestQuery("SELECT 1");
dataSource.setRegisterMbeans(true); // Enable JMX registration
return dataSource;
}
@Bean
public SimpleJmxBeanExporter simpleJmxBeanExporter(HikariDataSource dataSource) {
SimpleJmxBeanExporter exporter = new SimpleJmxBeanExporter();
exporter.setBeans(Collections.singletonMap("dataSource", dataSource));
exporter.setRegistrationPolicy(RegistrationPolicy.REPLACE_EXISTING);
return exporter;
}
}
Environment
If hikari JMX is exposed with org.springframework.jmx.export.MBeanExporter no operations is published even with property allowPoolSuspension=true