Ошибка пула подключений (Spring, Hibernate). Как это исправить? - PullRequest
0 голосов
/ 20 апреля 2020
WARNING: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@3531a5ff -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 

java. sql .SQLException: Невозможно загрузить плагин аутентификации caching_sha2_password. в com. mysql .jdb c .SQLError.createSQLException (SQLError. java: 869) в com. mysql .jdb c .SQLError.createSQLException (SQLError. java: 865) в com . mysql .jdb c .MysqlIO.proceedHandshakeWithPluggableAuthentication (MysqlIO. java: 1746) в com. mysql .jdb c .MysqlIO.doHandshake (MysqlIO. java: 1226) 1043 * .jdb c .ConnectionImpl.coreConnect (ConnectionImpl. java: 2188) в com. mysql .jdb c .ConnectionImpl.connectOneTryOnly (ConnectionImpl. java: 2219) в com. mysql .jdb c .ConnectionImpl.createNewIO (ConnectionImpl. java: 2014) в com. mysql .jdb c .ConnectionImpl. (ConnectionImpl. java: 776) в com. mysql .jdb c .JDBC4Connection. (JDBC4Connection. java: 47) в sun.reflect.GeneratedConstructorAccessor36.newInstance (неизвестный источник) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl. 45) на 10. 10g. refle.Constructor.newInstance (Конструктор. java: 423) в com. mysql .jdb c .Util.handleNewInstance (Util. java: 425) в com. mysql .jdb c .ConnectionImpl.getInstance (ConnectionImpl. java: 386) в com. mysql .jdb c .NonRegisteringDriver.connect (NonRegisteringDriver. java: 330) в com .mchange.v2.c3p0.DriverManagerDataSource.getConnection (DriverManagerDataSource. java: 175) по адресу com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection (WrapperConnectionPoolDataSource. * 10c3. .getPooledConnection (. WrapperConnectionPoolDataSource java: 206) в com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool $ 1PooledConnectionResourcePoolManager.acquireResource (C3P0PooledConnectionPool java:. 203) в com.mchange.v2.resourcepool.BasicResourcePool.doAcquire (BasicResourcePool . java: 1138) по адресу com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess (BasicResourcePool. java: 1125) по адресу com.mchange.v2.resourcepool.BasicResourcePool.ac.resource $ 70076ResourcePool.ac на com.mchange.v2.resourcepool.BasicResour cePool $ ScatteredAcquireTask.run (BasicResourcePool. java: 1870) в com.mchange.v2.asyn c .ThreadPoolAsynchronousRunner $ PoolThread.run (ThreadPoolAsynchronousRunner. java: 696)

2020 3 *1002* 20203 23:14:30 com.mchange.v2.resourcepool.BasicResourcePool ПРЕДУПРЕЖДЕНИЕ: com.mchange.v2.resourcepool. BasicResourcePool$ScatteredAcquireTask@456d6127 - Сбой попытки получения !!! Очистка в ожидании приобретений. При попытке получить необходимый новый ресурс нам не удалось достичь большего, чем максимальное количество разрешенных попыток получения (30). Последнее исключение при попытке получения: java. sql .SQLException: Невозможно загрузить плагин аутентификации caching_sha2_password. в com. mysql .jdb c .SQLError.createSQLException (SQLError. java: 869) в com. mysql .jdb c .SQLError.createSQLException (SQLError. java: 865) в com . mysql .jdb c .MysqlIO.proceedHandshakeWithPluggableAuthentication (MysqlIO. java: 1746) в com. mysql .jdb c .MysqlIO.doHandshake (MysqlIO. java: 1226) 1094 * .jdb c .ConnectionImpl.coreConnect (ConnectionImpl. java: 2188) в com. mysql .jdb c .ConnectionImpl.connectOneTryOnly (ConnectionImpl. java: 2219) в com. mysql .jdb c .ConnectionImpl.createNewIO (ConnectionImpl. java: 2014) в com. mysql .jdb c .ConnectionImpl. (ConnectionImpl. java: 776) в com. mysql .jdb c .JDBC4Connection. (JDBC4Connection. java: 47) в sun.reflect.GeneratedConstructorAccessor36.newInstance (неизвестный источник) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl. 45) на 1109. refle.Constructor.newInstance (Конструктор. java: 423) в com. mysql .jdb c .Util.handleNewInstance (Util. java: 425) в com. mysql .jdb c .ConnectionImpl.getInstance (ConnectionImpl. java: 386) в com. mysql. jdb c .NonRegisteringDriver.connect (NonRegisteringDriver. java: 330) по адресу com.mchange.v2.c3p0.DriverManagerDataSource.getConnection (DriverManagerDataSource. java: 175) по адресу com.mchange.v2.c3p0.WoConnectConnect. (WrapperConnectionPoolDataSource. java: 220) по адресу com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection (WrapperConnectionPoolDataSource. java: 206) по адресу com.mchange.v2.c3p0. 1124 *: 203) по адресу com.mchange.v2.resourcepool.BasicResourcePool.doAcquire (BasicResourcePool. java: 1138) по адресу com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnl0. mchange.v2.resourcepool.BasicResourcePool.access $ 700 (BasicResourcePool. java: 44) на com.mchange.v2.resourcepool.BasicResourcePool $ ScatteredAcquireTask.run (BasicResourcePool. java: 1870) на com.mchange.v2.as c .T hreadPoolAsynchronousRunner $ PoolThread.run (ThreadPoolAsynchronousRunner. java: 696)

19 апреля 2020 г. 11:14:30 com.mchange.v2.resourcepool.BasicResourcePool ПРЕДУПРЕЖДЕНИЕ: com.mchange.v2.resourcepool. BasicResourcePool$ScatteredAcquireTask@661ca68e - Попытка получения не удалась !!! Очистка в ожидании приобретений. При попытке получить необходимый новый ресурс нам не удалось достичь большего, чем максимальное количество разрешенных попыток получения (30). Последнее исключение при попытке получения: java. sql .SQLException: Невозможно загрузить плагин аутентификации caching_sha2_password. в com. mysql .jdb c .SQLError.createSQLException (SQLError. java: 869) в com. mysql .jdb c .SQLError.createSQLException (SQLError. java: 865) в com . mysql .jdb c .MysqlIO.proceedHandshakeWithPluggableAuthentication (MysqlIO. java: 1746) в com. mysql .jdb c .MysqlIO.doHandshake (MysqlIO. java: 1226) 1145 * .jdb c .ConnectionImpl.coreConnect (ConnectionImpl. java: 2188) в com. mysql .jdb c .ConnectionImpl.connectOneTryOnly (ConnectionImpl. java: 2219) в com. mysql .jdb c .ConnectionImpl.createNewIO (ConnectionImpl. java: 2014) в com. mysql .jdb c .ConnectionImpl. (ConnectionImpl. java: 776) в com. mysql .jdb c .JDBC4Connection. (JDBC4Connection. java: 47) в sun.reflect.GeneratedConstructorAccessor36.newInstance (неизвестный источник) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl. 11) на 11,60. refle.Constructor.newInstance (Конструктор. java: 423) в com. mysql .jdb c .Util.handleNewInstance (Util. java: 425) в com. mysql .jdb c .ConnectionImpl.getInstance (ConnectionImpl. java: 386) в com. mysql .jdb c .NonRegisteringDriver.connect (NonRegisteringDriver. java: 330) в com .mchange.v2.c3p0.DriverManagerDataSource.getConnection (DriverManagerDataSource. java: 175) по адресу com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection (WrapperConnectionPoolDataSource. * 11c3. .getPooledConnection (. WrapperConnectionPoolDataSource java: 206) в com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool $ 1PooledConnectionResourcePoolManager.acquireResource (C3P0PooledConnectionPool java:. 203) в com.mchange.v2.resourcepool.BasicResourcePool.doAcquire (BasicResourcePool . java: 1138) на com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess (BasicResourcePool. java: 1125) на com.mchange.v2.resourcepool.BasicResourcePool.ac.resource $ 700.ResourcePool.access.count на com.mchange.v2.resourcepool.BasicResour cePool $ ScatteredAcquireTask.run (BasicResourcePool. java: 1870) на com.mchange.v2.asyn c .ThreadPoolAsynchronousRunner $ PoolThread.run (ThreadPoolAsynchronousRunner. java: 696)

199 * 23:14:30 com.mchange.v2.resourcepool.BasicResourcePool ПРЕДУПРЕЖДЕНИЕ. Не удалось получить ресурс com.mchange.v2. resourcepool. BasicResourcePool@7439cf4b прерывает все потоки, ожидающие получения ресурса. Повторим попытку в ответ на новые запросы клиентов. 19 апреля 2020 г., 14 ч. 14 м. Com.mchange.v2.resourcepool.BasicResourcePool ПРЕДУПРЕЖДЕНИЕ. Не удалось получить ресурс. Com.mchange.v2.resourcepool. BasicResourcePool@7439cf4b прерывает все потоки, ожидающие извлечения ресурса. , Повторим попытку в ответ на новые запросы клиентов. 19 апреля 2020 г., 11:14:30 com.mchange.v2.resourcepool.BasicResourcePool ПРЕДУПРЕЖДЕНИЕ. Не удалось получить ресурс. Com.mchange.v2.resourcepool. BasicResourcePool@7439cf4b прерывает все потоки, ожидающие извлечения ресурса , Повторим попытку в ответ на новые запросы клиентов. 19 апреля 2020 г., 23:14, org.hibernate.engine.jdb c .env.internal.JdbcEnvironmentInitiator initiateService ПРЕДУПРЕЖДЕНИЕ: HHH000342: Не удалось получить соединение с метаданными запроса: Соединения не могут быть получены из базовой базы данных! 19 апреля 2020 г., 14 ч. 14 м. Com.mchange.v2.resourcepool.BasicResourcePool ПРЕДУПРЕЖДЕНИЕ: com.mchange.v2.resourcepool. BasicResourcePool$ScatteredAcquireTask@3aea5402 - Сбой попытки получения !!! Очистка в ожидании приобретений. При попытке получить необходимый новый ресурс нам не удалось достичь большего, чем максимальное количество разрешенных попыток получения (30). Последнее исключение при попытке получения: java. sql .SQLException: Невозможно загрузить плагин аутентификации caching_sha2_password. в com. mysql .jdb c .SQLError.createSQLException (SQLError. java: 869) в com. mysql .jdb c .SQLError.createSQLException (SQLError. java: 865) в com . mysql .jdb c .MysqlIO.proceedHandshakeWithPluggableAuthentication (MysqlIO. java: 1746) в com. mysql .jdb c .MysqlIO.doHandshake (MysqlIO. java: 1226) 1197 * .jdb c .ConnectionImpl.coreConnect (ConnectionImpl. java: 2188) в com. mysql .jdb c .ConnectionImpl.connectOneTryOnly (ConnectionImpl. java: 2219) в com. mysql .jdb c .ConnectionImpl.createNewIO (ConnectionImpl. java: 2014) в com. mysql .jdb c .ConnectionImpl. (ConnectionImpl. java: 776) в com. mysql .jdb c .JDBC4Connection. (JDBC4Connection. java: 47) в sun.reflect.GeneratedConstructorAccessor36.newInstance (неизвестный источник) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl. 12) на 12. 12g. refle.Constructor.newInstance (Конструктор. java: 423) в com. mysql .jdb c .Util.handleNewInstance (Util. java: 425) в com. mysql .jdb c .ConnectionImpl.getInstance (ConnectionImpl. java: 386) в com. mysql .jdb c .NonRegisteringDriver.connect (NonRegisteringDriver. java: 330) в com .mchange.v2.c3p0.DriverManagerDataSource.getConnection (DriverManagerDataSource. java: 175) по адресу com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection (WrapperConnectionPoolDataSource. * 12c3. .getPooledConnection (. WrapperConnectionPoolDataSource java: 206) в com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool $ 1PooledConnectionResourcePoolManager.acquireResource (C3P0PooledConnectionPool java:. 203) в com.mchange.v2.resourcepool.BasicResourcePool.doAcquire (BasicResourcePool . java: 1138) в com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess (BasicResourcePool. java: 1125) в com.mchange.v2.resourcepool.BasicResourcePool.ac.resource $ 70030): на com.mchange.v2.resourcepool.BasicResour cePool $ ScatteredAcquireTask.run (BasicResourcePool. java: 1870) на com.mchange.v2.asyn c .ThreadPoolAsynchronousRunner $ PoolThread.run (ThreadPoolAsynchronousRunner. java: 696) 20205 *1014* 20205 23:14:30 com.mchange.v2.resourcepool.BasicResourcePool ПРЕДУПРЕЖДЕНИЕ. Не удалось получить ресурс. Com.mchange.v2.resourcepool. BasicResourcePool@7439cf4b прерывает все потоки, ожидающие получения ресурса. Повторим попытку в ответ на новые запросы клиентов. 19 апреля 2020 г. 11:14:30 com.mchange.v2.resourcepool.BasicResourcePool ПРЕДУПРЕЖДЕНИЕ: com.mchange.v2. resourcepool. BasicResourcePool$ScatteredAcquireTask@4f3eb158 - Попытка получения не удалась !!! Очистка в ожидании приобретений. При попытке получить необходимый новый ресурс нам не удалось достичь большего, чем максимальное количество разрешенных попыток получения (30). Последнее исключение при попытке получения: java. sql .SQLException: Невозможно загрузить плагин аутентификации caching_sha2_password. в com. mysql .jdb c .SQLError.createSQLException (SQLError. java: 869) в com. mysql .jdb c .SQLError.createSQLException (SQLError. java: 865) в com . mysql .jdb c .MysqlIO.proceedHandshakeWithPluggableAuthentication (MysqlIO. java: 1746) в com. mysql .jdb c .MysqlIO.doHandshake (MysqlIO. java: 1226) 1248 * .jdb c .ConnectionImpl.coreConnect (ConnectionImpl. java: 2188) в com. mysql .jdb c .ConnectionImpl.connectOneTryOnly (ConnectionImpl. java: 2219) в com. mysql .jdb c .ConnectionImpl.createNewIO (ConnectionImpl. java: 2014) в com. mysql .jdb c .ConnectionImpl. (ConnectionImpl. java: 776) в com. mysql .jdb c .JDBC4Connection. (JDBC4Connection. java: 47) в sun.reflect.GeneratedConstructorAccessor36.newInstance (неизвестный источник) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl. refle.Constructor.newInstance (Конструктор. java: 423) в com. mysql .jdb c .Util.handleNewInstance (Util. java: 425) в com. mysql .jdb c .ConnectionImpl.getInstance (ConnectionImpl. java: 386) в com. mysql .jdb c .NonRegisteringDriver.connect (NonRegisteringDriver. java: 330) в com .mchange.v2.c3p0.DriverManagerDataSource.getConnection (DriverManagerDataSource. java: 175) по адресу com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection (WrapperConnectionPoolDataSource. * 12763. .getPooledConnection (. WrapperConnectionPoolDataSource java: 206) в com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool $ 1PooledConnectionResourcePoolManager.acquireResource (C3P0PooledConnectionPool java:. 203) в com.mchange.v2.resourcepool.BasicResourcePool.doAcquire (BasicResourcePool . java: 1138) на com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess (BasicResourcePool. java: 1125) на com.mchange.v2.resourcepool.BasicResourcePool.ac.resse $ 700.81ResourcePool.ac на com.mchange.v2.resourcepool.BasicResour cePool $ ScatteredAcquireTask.run (BasicResourcePool. java: 1870) на com.mchange.v2.asyn c .ThreadPoolAsynchronousRunner $ PoolThread.run (ThreadPoolAsynchronousRunner. java: 696) 20209 *1018* 20209 23:14:30 com.mchange.v2.resourcepool.BasicResourcePool ПРЕДУПРЕЖДЕНИЕ. Не удалось получить ресурс. Com.mchange.v2.resourcepool. BasicResourcePool@7439cf4b прерывает все потоки, ожидающие получения ресурса. Повторим попытку в ответ на новые запросы клиентов. 19 апреля 2020 г., 11:14:30. Org.hibernate.dialect.Dialect INFO: HHH000400: Использование диалекта: org.hibernate.dialect.MySQLDialect

А это мой код

@Autowired
private Environment env;

private Logger logger = Logger.getLogger(getClass().getName());

// define a bean for ViewResolver

@Bean
public DataSource myDataSource() {

    // create connection pool
    ComboPooledDataSource myDataSource = new ComboPooledDataSource();

    // set the jdbc driver
    try {
        myDataSource.setDriverClass("com.mysql.jdbc.Driver");       
    }
    catch (PropertyVetoException exc) {
        throw new RuntimeException(exc);
    }

    // for sanity's sake, let's log url and user ... just to make sure we are reading the data
    logger.info("jdbc.url=" + env.getProperty("jdbc.url"));
    logger.info("jdbc.user=" + env.getProperty("jdbc.user"));

    // set database connection props
    myDataSource.setJdbcUrl(env.getProperty("jdbc.url"));
    myDataSource.setUser(env.getProperty("jdbc.user"));
    myDataSource.setPassword(env.getProperty("jdbc.password"));

    // set connection pool props
    myDataSource.setInitialPoolSize(getIntProperty("connection.pool.initialPoolSize"));
    myDataSource.setMinPoolSize(getIntProperty("connection.pool.minPoolSize"));
    myDataSource.setMaxPoolSize(getIntProperty("connection.pool.maxPoolSize"));     
    myDataSource.setMaxIdleTime(getIntProperty("connection.pool.maxIdleTime"));

    return myDataSource;
}

private Properties getHibernateProperties() {

    // set hibernate properties
    Properties props = new Properties();

    props.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
    props.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql"));

    return props;               
}


// need a helper method 
// read environment property and convert to int

private int getIntProperty(String propName) {

    String propVal = env.getProperty(propName);

    // now convert to int
    int intPropVal = Integer.parseInt(propVal);

    return intPropVal;
}   

@Bean
public LocalSessionFactoryBean sessionFactory(){

    // create session factories
    LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();

    // set the properties
    sessionFactory.setDataSource(myDataSource());
    sessionFactory.setPackagesToScan(env.getProperty("hibernate.packagesToScan"));
    sessionFactory.setHibernateProperties(getHibernateProperties());

    return sessionFactory;
}

@Bean
@Autowired
public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {

    // setup transaction manager based on session factory
    HibernateTransactionManager txManager = new HibernateTransactionManager();
    txManager.setSessionFactory(sessionFactory);

    return txManager;
}   

}

Как я могу это исправить?

1 Ответ

0 голосов
/ 20 апреля 2020

Ваша проблема в том, что у вас нет свободного подключения к БД в вашем пуле. Я не знаю, как это работает в спящем режиме. Но вы должны обратить внимание на доступ к вашей БД. Вы должны закрыть соединение после использования. В JDB C просто откройте его с помощью «try with resources» (try() {...}) или используйте блок «finally», чтобы закрыть соединение.

...