【问题标题】:Spring Data JPA and Connection PoolingSpring Data JPA 和连接池
【发布时间】:2017-06-19 02:10:20
【问题描述】:

我有一个 RESTful Web 应用程序,它针对 Oracle 存储数据,堆栈是 Spring-Data-Jpa 和 Hibernate。

我们已经使用 Oracle UCP 实现了连接池,但它似乎不起作用。数据库中有 1000 个连接用于我们的 NFT 测试。

我的配置如下图

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() throws IllegalStateException, SQLException {
    LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
    entityManagerFactoryBean.setDataSource(dataSource());
    entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistenceProvider.class);
    entityManagerFactoryBean.setPackagesToScan(env.getRequiredProperty(ENTITYMANAGER_PACKAGES_TO_SCAN));
    entityManagerFactoryBean.setJpaProperties(hibProperties());         
    return entityManagerFactoryBean;
}

@Bean
public DataSource dataSource() throws IllegalStateException, SQLException {
    PoolDataSource dataSource = PoolDataSourceFactory.getPoolDataSource();

    dataSource.setConnectionFactoryClassName(env.getRequiredProperty(DB_CONNECTION_FACTORY_CLASS_NAME));
    dataSource.setURL(env.getRequiredProperty(DATABASE_URL));
    dataSource.setUser(env.getRequiredProperty(DATABASE_USERNAME));
    dataSource.setPassword(env.getRequiredProperty(DATABASE_PASSWORD));
    dataSource.setMinPoolSize(Integer.parseInt(env.getRequiredProperty(DATABASE_CONNECTION_MIN_POOL_SIZE)));
    dataSource.setMaxPoolSize(Integer.parseInt(env.getRequiredProperty(DATABASE_CONNECTION_MAX_POOL_SIZE)));
    dataSource.setInitialPoolSize(Integer.parseInt(env.getRequiredProperty(DATABASE_CONNECTION_INITIAL_POOL_SIZE)));

    return dataSource;
}    


private Properties hibProperties() {
    Properties properties = new Properties();
    properties.put(HIBERNATE_DIALECT, env.getRequiredProperty(HIBERNATE_DIALECT));
    properties.put(HIBERNATE_SHOW_SQL, env.getRequiredProperty(HIBERNATE_SHOW_SQL));
    /*properties.put(HIBERNATE_NAMING_STRATEGY, env.getRequiredProperty(HIBERNATE_NAMING_STRATEGY));*/
    return properties;
}

如果我应该在这里使用另一个配置,请告诉我,这样就不会一直创建新会话。

谢谢

克里斯

【问题讨论】:

    标签: oracle hibernate spring-data-jpa connection-pooling


    【解决方案1】:

    似乎为每个线程创建了一个数据源,并在 Jetty 配置中集中数据源对问题进行了排序。

    jetty and Oracle Connection Pooling

    【讨论】:

      猜你喜欢
      • 2015-06-16
      • 1970-01-01
      • 2018-11-17
      • 2020-08-30
      • 2018-11-30
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多