簡體   English   中英

HA-JDBC 集成與 Spring 啟動 JPA

[英]HA-JDBC Integration with Spring Boot JPA

我正在嘗試將 HA-JDBC 與 Spring 引導 JPA 集成。任何人都可以幫助將 Ha-Jdbc 與 spring 引導 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

我對 HA-JDBC 沒有太多經驗,但也許我可以讓您了解情況。 您永遠不會聲明驅動程序,並且查找試圖創建一個 Oracle URL 連接 ( dbc:oracle:thin:@//localhost:1521/orcl )。 我希望它能讓你知道在哪里看。

我認為您的 jdbc url 有問題。

在您的情況下,格式為jdbc:oracle:<drivertype>:@<database>

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

在主機之前沒有//

您可以使用數據庫的服務名稱嗎? 簡單連接URL是jdbc:oracle:thin:@myhost:1521/myorcldbservicename。 此外,您還可以查看示例SpringBootApp作為示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM