小生我最近第一次接触到双机,客户买了一台HP安腾小型机外带一存储,环境如下:
操作系统:HP-UNIX 11.31(带serviceguard)
数据库:oracle10.2.0.1.0
安装描述:该小型机一共4个分区,我拿了其中两个分区做oracle rac,费了九牛二虎之力和HP工程师一起把双机环境搭好了,裸设备也都按预定的划分出来,安装中途坎坎坷坷,不过后来总算将clusterware及数据库都安装成功了。
双机IP配置如下:
192.168.1.110 node01(节点一)
192.168.1.111 node02(节点二)
192.168.1.112 node01_vip(节点一虚拟IP)
192.168.1.113 node02_vip(节点二虚拟IP)
配置远程数据库:
GADB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.113)(PORT = 1521))
(LOAD_BALANCE=yes)
(FAILOVER=on)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = GADB)
)
)
我用sqlplus,pl/sql developer,toad连接数据库一切OK,我还特意用sqlplus断开连接测试很多次一切OK,但当我手工写了一个DBACCESS测试时,问题出现了,程序如下:
package cn.com;import java.io.BufferedReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBAccess {
private String driver="oracle.jdbc.driver.OracleDriver";
private String url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.112)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.113)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=on))(CONNECT_DATA=(SERVICE_NAME=GADB)))";
private String user="GATI";
private String pwd="GATI";
private Connection conn;
private Statement stmt;
private ResultSet rst;
public DBAccess() {
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pwd);
stmt=conn.createStatement();
System.out.println("连接成功");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
System.out.println("创建异常");
e.printStackTrace();
System.out.println(e.getCause());
System.out.println(e.getErrorCode());
}
}
public ResultSet query(String sql){
try {
rst=stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rst;
}
public int update(String sql){
int flag=-1;
try {
flag=stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
public void close(){
try {
if(rst!=null){
rst.close();
rst=null;
}
if(stmt!=null){
stmt.close();
stmt=null;
}
if(conn!=null){
conn.close();
conn=null;
}
System.out.println("关闭");
} catch (SQLException e) {
System.out.println("关闭异常");
e.printStackTrace();
}
}
public Connection getConn() {
return conn;
} public static void main(String[] args) {
DBAccess db = new DBAccess();
db.close();
}
}
测试结果,有时连接成功,有时报错,错误信息如下:
创建异常
java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(ERR=1153)(VSNNUM=169869568)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(ADDRESS=(PROTOCOL=TCP)(HOST=node02)(PORT=1521))'))(ERROR=(CODE=305)(EMFI=1))))
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at cn.com.DBAccess.<init>(DBAccess.java:35)
at cn.com.DBAccess.main(DBAccess.java:103)
补充一点:上面的错误有时是node01有时是node02,请各位大侠指点,先谢谢了!!
操作系统:HP-UNIX 11.31(带serviceguard)
数据库:oracle10.2.0.1.0
安装描述:该小型机一共4个分区,我拿了其中两个分区做oracle rac,费了九牛二虎之力和HP工程师一起把双机环境搭好了,裸设备也都按预定的划分出来,安装中途坎坎坷坷,不过后来总算将clusterware及数据库都安装成功了。
双机IP配置如下:
192.168.1.110 node01(节点一)
192.168.1.111 node02(节点二)
192.168.1.112 node01_vip(节点一虚拟IP)
192.168.1.113 node02_vip(节点二虚拟IP)
配置远程数据库:
GADB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.113)(PORT = 1521))
(LOAD_BALANCE=yes)
(FAILOVER=on)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = GADB)
)
)
我用sqlplus,pl/sql developer,toad连接数据库一切OK,我还特意用sqlplus断开连接测试很多次一切OK,但当我手工写了一个DBACCESS测试时,问题出现了,程序如下:
package cn.com;import java.io.BufferedReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBAccess {
private String driver="oracle.jdbc.driver.OracleDriver";
private String url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.112)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.113)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=on))(CONNECT_DATA=(SERVICE_NAME=GADB)))";
private String user="GATI";
private String pwd="GATI";
private Connection conn;
private Statement stmt;
private ResultSet rst;
public DBAccess() {
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pwd);
stmt=conn.createStatement();
System.out.println("连接成功");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
System.out.println("创建异常");
e.printStackTrace();
System.out.println(e.getCause());
System.out.println(e.getErrorCode());
}
}
public ResultSet query(String sql){
try {
rst=stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rst;
}
public int update(String sql){
int flag=-1;
try {
flag=stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
public void close(){
try {
if(rst!=null){
rst.close();
rst=null;
}
if(stmt!=null){
stmt.close();
stmt=null;
}
if(conn!=null){
conn.close();
conn=null;
}
System.out.println("关闭");
} catch (SQLException e) {
System.out.println("关闭异常");
e.printStackTrace();
}
}
public Connection getConn() {
return conn;
} public static void main(String[] args) {
DBAccess db = new DBAccess();
db.close();
}
}
测试结果,有时连接成功,有时报错,错误信息如下:
创建异常
java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(ERR=1153)(VSNNUM=169869568)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(ADDRESS=(PROTOCOL=TCP)(HOST=node02)(PORT=1521))'))(ERROR=(CODE=305)(EMFI=1))))
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at cn.com.DBAccess.<init>(DBAccess.java:35)
at cn.com.DBAccess.main(DBAccess.java:103)
补充一点:上面的错误有时是node01有时是node02,请各位大侠指点,先谢谢了!!
解决方案 »
- 怎樣在onchange中傳遞多個值
- lucene查询问题
- jsp + tomcat问题,救命啊!
- 一对多的问题~~~~
- 用VPN连接MySQL5.0数据库,读取数据时偶尔出现java.sql.SQLException: I/O Error: Connection reset...异常,怎么办?
- 在保存网页时,有时IE会提示“无法保存网页”,这种效果是怎么做出来的?
- 调用jspsmart组件上传文件,将所上传文件的文件名按当前日期命名的JSP文件应该怎么写?!谁在我改一下加上这个功能.
- JavaScript 的缺点...不知有何方法可以解决这一问题...
- [大侠指路] Apachetomcat+ JSP 中使用JDBC访问MS Access数据库的问题
- jsp中文问题
- 同时访问会出错
- 我把结果集放到map里了,想把map里的放到javabean里
9204 jdbc驱动下载:
http://www.oracle.com/technology/global/cn/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html下载9204的 ojdbc14.jar ,,,再试下看。
格式应该是jdbc:oracle:thin:@192.168.0.39:1521:TARENADB