Oracle集群连接-JDBC使用TNS连接多节点Oracle



public final class DatabaseUtils
{
    // private final static String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:orcl";
    private final static String JDBC_URL = "dbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = vip-db1)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = vip-db2)(PORT = 1521))(LOAD_BALANCE = yes)(failover = yes)(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = db) ) )";
    private final static String JDBC_USER = "xxx";
    private final static String JDBC_PASSWORD = "xxx";
    private final static String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
    // private static DataSource dataSource;
    private static ComboPooledDataSource cpds;
    static
    {
        try
        {
            cpds = new ComboPooledDataSource();
            cpds.setDriverClass(JDBC_DRIVER);
            cpds.setJdbcUrl(JDBC_URL);
            cpds.setUser(JDBC_USER);
            cpds.setPassword(JDBC_PASSWORD);
            cpds.setMinPoolSize(5);
            cpds.setAcquireIncrement(5);
            cpds.setMaxPoolSize(20);
        }
        catch (Exception e)
        {
            e.printStackTrace();
            System.exit(1);
        }
    }
    /**
     * @return 网络连接
     * @throws SQLException
     */
    public static Connection getConnection() throws SQLException
    {
        return cpds.getConnection();
    }
}


-- 加上注释后的TNS连接串
jdbc:oracle:thin:@
(description=    
  (ADDRESS_LIST =
    (address=(protocol=tcp)(host=192.168.1.44)(port=1521))
    (address=(protocol=tcp)(host=192.168.1.45)(port=1521))
    (address=(protocol=tcp)(host=192.168.1.46)(port=1521))
    (load_balance=yes)//表示是否负载均衡
  )
  (connect_data =
  //(server = dedicated)//该参数表示专用服务器模式
    (service_name=ORACMS)//要操作数据库的服务名
    (failover_mode =//连接失败后处理的方式
      (type=session)//TYPE =SESSION表示当一个连接好的会话的实例发生故障,系统会自动将会话切换到其他可用的实例,前台应用无须再度发起连接,但会话正在执行的SQL 需要重新执行。
      (method=basic)//表示初始连接就连接一个接点
      (retries=5)//连接失败后重试连接的次数
      (delay=15)//连接失败后重试的延迟时间(以秒为单位)
    )
  )
)

-- 要点说明
1、load_balance该参数值为yes就是采用负载均衡模式连接,为no就是采用非负载均衡模式
2、method该参数值为basic就是表示初始连接只有一个连接节点,为preconnect就是表示初始连接所有的rac接点
3、server 参数值 dedicated表示专用服务器模式,没什么实际用处,可以去掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值