Автоматическое создание нового подключения к Google cloud SQL при использовании SocketFactory и Hikaricp - PullRequest
0 голосов
/ 30 октября 2018

Я создал веб-приложение на Java-сервлете и использовал Hikaricp для соединения с облаком Google sql (Postgresql), и оно было развернуто на GAE Flexible. Соединение с облаком sql работает нормально, но я видел в журнале стекового драйвера, что соединение автоматически создается каждые 30 минут, когда у моего приложения нет трафика (просмотр в прикрепленном файле). Автоматическое создание нового журнала подключений

Мой код для обработки соединения:

public class DataSourceUtil {
private HikariDataSource ds;
private static DataSourceUtil INSTANCE;

static {
    INSTANCE = new DataSourceUtil();
    System.out.println("=== Init connection ===");
}

private DataSourceUtil() {
    HikariConfig config = new HikariConfig("/datasource.properties");
    ds = new HikariDataSource(config);
}

public static DataSourceUtil getINSTANCE(){
    if (INSTANCE == null){
        INSTANCE = new DataSourceUtil();
        return INSTANCE;
    }else{
        return INSTANCE;
    }
}

public Connection getConnection() throws SQLException {
    return ds.getConnection();
}

Мой конфигурационный файл Hikari:

jdbcUrl=jdbc:postgresql://google/mydb?useSSL=false&socketFactoryArg=myinstance&socketFactory=com.google.cloud.sql.postgres.SocketFactory 
dataSource.user = user
dataSource.password = password
dataSource.maximumPoolSize = 10
dataSource.minimumIdle = 5
dataSource.cachePrepStmts = true
dataSource.prepStmtCacheSize = 256
dataSource.prepStmtCacheSqlLimit = 2048
dataSource.useServerPrepStmts = true

UPDATE: После просмотра журнала в стеке драйвера я увидел информацию журнала из SocketFactory:

INFO: Ephemeral certificate for Cloud SQL instance MYINSTANCE is about to expire, obtaining new one.

И соединение будет создаваться каждые 30 минут, и память также увеличивается и не освобождается.

Это может вызвать утечку памяти в GAE.

Кто-нибудь может помочь в этом случае? Благодаря.

...