Merge branch 'RED-7775' into 'main'
RED-7775: Set database connection names for pg_stat_activity See merge request fforesight/database-tenant-commons!12
This commit is contained in:
commit
da659c3df1
@ -43,6 +43,9 @@ public class DynamicDataSourceBasedMultiTenantConnectionProvider extends Abstrac
|
||||
@Value("${multitenancy.datasource-cache.expireAfterAccess:10}")
|
||||
private Integer expireAfterAccess;
|
||||
|
||||
@Value("${spring.application.name:}")
|
||||
private String applicationName;
|
||||
|
||||
private LoadingCache<String, SchemaConnection> connectionPerTenant;
|
||||
|
||||
private LoadingCache<SchemaConnection, DataSource> dataSourcePerConnectionString;
|
||||
@ -55,7 +58,7 @@ public class DynamicDataSourceBasedMultiTenantConnectionProvider extends Abstrac
|
||||
public SchemaConnection load(String key) {
|
||||
|
||||
var tenant = tenantProvider.getTenant(key);
|
||||
var jdbcUrl = JDBCUtils.buildJdbcUrl(tenant.getDatabaseConnection());
|
||||
var jdbcUrl = JDBCUtils.buildJdbcUrl(tenant.getDatabaseConnection(), applicationName + "-multitenant");
|
||||
return SchemaConnection.builder().jdbcUrl(jdbcUrl).databaseConnection(tenant.getDatabaseConnection()).build();
|
||||
}
|
||||
});
|
||||
@ -86,7 +89,7 @@ public class DynamicDataSourceBasedMultiTenantConnectionProvider extends Abstrac
|
||||
tenantHikariSettings.setUsername(connection.getDatabaseConnection().getUsername());
|
||||
tenantHikariSettings.setPassword(decryptedPassword);
|
||||
|
||||
var jdbcUrl = JDBCUtils.buildJdbcUrl(connection.getDatabaseConnection());
|
||||
var jdbcUrl = JDBCUtils.buildJdbcUrl(connection.getDatabaseConnection(), applicationName + "-multitenant");
|
||||
tenantHikariSettings.setJdbcUrl(jdbcUrl);
|
||||
tenantHikariSettings.setPoolName(jdbcUrl + TENANT_POOL_NAME_SUFFIX);
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ import org.postgresql.util.PSQLException;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties;
|
||||
import org.springframework.core.io.ResourceLoader;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
@ -51,6 +52,9 @@ public class TenantLiquibaseInitializer {
|
||||
private final TenantProvider tenantProvider;
|
||||
private final EncryptionDecryptionService encryptionDecryptionService;
|
||||
|
||||
@Value("${spring.application.name:}")
|
||||
private String applicationName;
|
||||
|
||||
|
||||
public TenantLiquibaseInitializer(@Qualifier("tenantLiquibaseProperties") LiquibaseProperties liquibaseProperties,
|
||||
ResourceLoader resourceLoader,
|
||||
@ -95,7 +99,7 @@ public class TenantLiquibaseInitializer {
|
||||
|
||||
private void createSchema(TenantResponse tenantRequest) {
|
||||
|
||||
var jdbcUrl = JDBCUtils.buildJdbcUrl(tenantRequest.getDatabaseConnection());
|
||||
var jdbcUrl = JDBCUtils.buildJdbcUrl(tenantRequest.getDatabaseConnection(), applicationName + "-liquibase");
|
||||
try (Connection connection = DriverManager.getConnection(jdbcUrl,
|
||||
tenantRequest.getDatabaseConnection().getUsername(),
|
||||
encryptionDecryptionService.decrypt(tenantRequest.getDatabaseConnection().getPassword()))) {
|
||||
|
||||
@ -18,13 +18,14 @@ public class JDBCUtils {
|
||||
}
|
||||
|
||||
|
||||
public String buildJdbcUrl(DatabaseConnection databaseConnection) {
|
||||
public String buildJdbcUrl(DatabaseConnection databaseConnection, String datasourceName) {
|
||||
|
||||
StringBuilder sb = createJdbcConnectionStringBuilder(databaseConnection.getDriver(),
|
||||
databaseConnection.getHost(),
|
||||
databaseConnection.getPort(),
|
||||
databaseConnection.getDatabase());
|
||||
Map<String, String> params = getConnectionParameters(databaseConnection);
|
||||
params.put("ApplicationName", datasourceName);
|
||||
appendParams(sb, params);
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user