Можно ли создать несколько датасорсов для spring-repository?

189
22 декабря 2021, 10:30

Spring-приложение, использующее jpa-repository, oracle и развернутое на was8.5.5.13

Возникла задача по записи в базу большого объема данных(11млн сущностей) Изначально в проекте создан singleton dataSource, который используется jpa-репозиторием для записи в базу.

На данный момент эта операция занимает очень времени(примерно 10 часов), поэтому возникла необходимость в многопоточность. Создал потоки, увеличил connection-pool для датасорса на сервере, но, это не решает проблему. 20 потоков отрабатывают за то же время, что и один.

Я подозреваю, что проблема кроется в в операциях записи в базу, что используется только один датасорс(закрываются и открываются потоки)

Как это можно побороть, можно ли как-то сообщить dataSource или EntityManager'у что я хочу быстрее, что можно создавать много коннекшенов?

датасорс выглядит так

    @Bean
    @Resource(type = DataSource.class, lookup = "jdbc/MyProject", name = "jdbc/MyProject")
    public DataSource dataSource() {
        final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
        dsLookup.setResourceRef(true);
        DataSource dataSource = dsLookup.getDataSource("java:comp/env/jdbc/MyProject");
        return dataSource;
    }

Entity-manager

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
    LocalContainerEntityManagerFactoryBean entityManager = new LocalContainerEntityManagerFactoryBean();
    entityManager.setDataSource(dataSource());
    entityManager.setPackagesToScan(PACKAGE_WITH_JPA_ENTITIES);
    entityManager.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
    entityManager.setJpaProperties(getHibernateProperties());
    log.info("Entity Manager configured.");
    return entityManager;
}

Обновление: Судя по мониторингу на самом сервере, кол-во соединений не зависит в текущий момент от того сколько я создал потоков. Потоков 20, соединений 1-2 (pool-connection)

READ ALSO
Ошибка при сборке maven unable to find attribute

Ошибка при сборке maven unable to find attribute

В чем может быть ошибка? Собираю проект apk через maven

183
Проблема с адаптацией на телефоне wordpress visual composer

Проблема с адаптацией на телефоне wordpress visual composer

Появилась проблема с адаптацией на телефонах, страница загружается обычно, все как надо, но стоит лишь свайпнуть влево и весь сайт идет бокомПомогите...

95
Расположение элементов по разным краям

Расположение элементов по разным краям

Подскажите, пожалуйста, каким свойством или группой свойств реализуется подобное?

78