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表示专用服务器模式,没什么实际用处,可以去掉
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表示专用服务器模式,没什么实际用处,可以去掉
相关文章推荐
- oracle nvl和nvl2的区别
- 无效的列类型: getInt not implemented for class oracle.jdbc.driver.T4CRowidAccessor
- 存储过程(自动备份数据)
- oracle入门
- oracle入门
- oracle运用(四) oracle数据库NUMBER类型详解
- Oracle函数和存储过程
- Oracle中的DDL,DML,DCL总结
- oracle 12c DMP文件导出,oracle 11gDMP文件导入
- Java笔记8:Hibernate连接Oracle
- oracle em 按钮乱码解决办法及em网页变成英文
- [Oracle] - 性能优化工具(1) - AWR
- Linux 环境下, ORACLE 监听启动慢的问题分析
- Oracle查询1-12月数据
- Oracle 表建立Model对象和拼接Select查询语句SQL
- 如何查询oracle中的关键字
- oracle 树形表结构查询 排序
- ORACLE游标概念讲解
- oracle计算一个日期加上指定工作日(排除周六周日和一系列节假日)时间
- Oracle安装报错:SGA size can not be greater than maximum shared memeory segment size