HA-JDB C Интеграция с Spring Boot JPA - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь интегрировать HA-JDB C с Spring Boot JPA. Может ли кто-нибудь помочь интегрировать Ha-Jdb c с пружинной загрузкой JPA,

import java.util.Arrays;

import javax.naming.NamingException;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import net.sf.hajdbc.SimpleDatabaseClusterConfigurationFactory;
import net.sf.hajdbc.cache.simple.SimpleDatabaseMetaDataCacheFactory;
import net.sf.hajdbc.dialect.oracle.OracleDialectFactory;
import net.sf.hajdbc.distributed.jgroups.JGroupsCommandDispatcherFactory;
import net.sf.hajdbc.sql.DataSource;
import net.sf.hajdbc.sql.DataSourceDatabase;
import net.sf.hajdbc.sql.DataSourceDatabaseClusterConfiguration;
import net.sf.hajdbc.state.simple.SimpleStateManagerFactory;

@Configuration
public class HAJdbcConfig
{
    @Bean
    public DataSourceDatabase db1()
    {
        DataSourceDatabase db1 = new DataSourceDatabase();
        db1.setId("db1");
        db1.setLocation("database url");
        db1.setUser("username");
        db1.setPassword("password");
        return db1;
    }

    @Bean
    public DataSourceDatabase db2()
    {
        DataSourceDatabase db1 = new DataSourceDatabase();
        db1.setId("db1");
        db1.setLocation("database url");
        db1.setUser("username");
        db1.setPassword("password");
        return db1;
    }


    @Bean
    public DataSourceDatabaseClusterConfiguration config() throws NamingException
    {
        DataSourceDatabaseClusterConfiguration config = new DataSourceDatabaseClusterConfiguration();
        config.setDatabases(Arrays.asList(db1(), db2()));
        config.setDialectFactory(new OracleDialectFactory());
        config.setDatabaseMetaDataCacheFactory(new SimpleDatabaseMetaDataCacheFactory());
        SimpleStateManagerFactory state = new SimpleStateManagerFactory();
        config.setStateManagerFactory(state);
        config.setDispatcherFactory(new JGroupsCommandDispatcherFactory());
        return config;
    }

    @Bean
    public javax.sql.DataSource primaryDataSource() throws NamingException
    {
        DataSource ds = new DataSource();
        ds.setCluster("mycluster");
        //ds.setConfig("ha-jdbc-mycluster.xml");
        ds.setConfigurationFactory(
                new SimpleDatabaseClusterConfigurationFactory<javax.sql.DataSource, DataSourceDatabase>(config()));

        return ds;

    }

}
Error retrieving database meta-data; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Failed to perform naming lookup of jdbc:oracle:thin:@//localhost:1521/orcl

Ответы [ 3 ]

0 голосов
/ 12 февраля 2020

Я думаю, что-то не так с вашим URL JDB c.

Формат jdbc:oracle:<drivertype>:@<database> в вашем случае

jdbc:oracle:thin:@localhost:1521/orcl

без // перед хостом.

0 голосов
/ 18 февраля 2020

Можете ли вы использовать имя сервиса для базы данных? URL простого соединения: jdbc:oracle:thin:@myhost: 1521 / myorcldbservicename. Кроме того, вы можете проверить пример SpringBootApp для примера.

0 голосов
/ 12 февраля 2020

У меня нет большого опыта работы с HA-JDB C, но, возможно, я смогу помочь вам. Вы никогда не объявляете драйвер, и поиск пытается создать URL-соединение Oracle (dbc:oracle:thin:@//localhost:1521/orcl). Я надеюсь, что это даст вам представление о том, где искать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...