您的位置:首页 > 数据库 > Oracle

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

2016-01-15 15:34 435 查看

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表示专用服务器模式,没什么实际用处,可以去掉
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: