如何设置探查器跟踪以发现我的callablestatement使用连接池?
我设置了一个要捕获的跟踪audit:login , audit:logout, rpc:completed. 但我看到的只是一个非集资银行(见下图)。hikari/jdbc驱动程序中是否有任何配置可以让池正常工作?我希望我对该服务的第二次调用是在profiler中进行的2池调用。
hikari配置(我对datasourceclassname同时使用了sqlserverdatasource和sqlserverconnectionpooldatasource,两者的结果相同):
public HikariDataSource createHikariDataSource() {
HikariDataSource dbDatasource = new HikariDataSource();
dbDatasource.setDataSourceClassName("com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource");
dbDatasource.addDataSourceProperty("databaseName", "tempdb");
dbDatasource.setPoolName("myJDBCTestConnectionPool");
dbDatasource.setUsername("someuser");
dbDatasource.setPassword("totallysafepassword");
dbDatasource.setMinimumIdle(5);
dbDatasource.setMaximumPoolSize(10);
dbDatasource.setConnectionTimeout(300);
dbDatasource.setIdleTimeout(1000);
dbDatasource.setMaxLifetime(1000);
return dbDatasource;
}
过程执行代码(修订版)
public void execMyProc() {
HikariDataSource hkds = createHikariDataSource();
Connection conn = hkds.getConnection();
CallableStatement stmt3 = conn.prepareCall({? = CALL dbo.connectionpooltest @InputParam1=?});
stmt3.registerOutParameter(1,Types.INTEGER);
stmt3.setInt(2,1);
ResultSet rs1 = stmt3.executeQuery();
rs1.close();
conn.close();
}
hikaricp和mssql jdbc maven pom.xml条目
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>8.4.0.jre8</version>
</dependency>
sql代码
use tempdb;
go
create or alter proc connectionpooltest (@InputParam1 int)
as
begin
return @InputParam1;
end;
go
探查器屏幕截图:
java版本:1.8.281(语言级别11或8)
sql server 2017开发者版(2014年和2019年的行为相同)
无论如何,是否有可靠的证据表明我的hikaricp配置正在使用一个池?如何使用profiler/prefmon/其他工具找到它?
暂无答案!
目前还没有任何答案,快来回答吧!