本人前一段时间开发的一个项目中,使用Tomcat作为WEB容器,采用Struts进行开发,中间使用几个数据源,试用时采用Oracle9.2数据库,数据库服务器在局域网内部,并且在同属一个交换机内部,经使用没有问题。
进入运行阶段后,需要将其中一个数据源连接的数据库移动到另外一个地方,不在同属一个交换机内部,但也是局域网,那边的数据库改为了ORACLE 9I RAC,相应的配置也进行了修改,修改如下:
<data-source key="IPSdataSource" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<set-property property="url" value="jdbc:oracle:thin:@(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.1.20)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.1.21)(PORT = 1521))
(LOAD_BALANCE = yes)
)
(CONNECT_DATA =
(SERVICE_NAME = db5)
(SERVER=DEDICATED)
)
)"
/>
但是在启动时,有时会有如下的错误提示:
2006-4-5 17:48:10 org.apache.struts.action.ActionServlet initModuleDataSources
严重: Initializing application data source IPSdataSource
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFact
ory, cause:
java.sql.SQLException: Io 异常: The Network Adapter could not establish the conn
ection
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.ja
va:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(Driv
erConnectionFactory.java:82)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(Poolable
ConnectionFactory.java:300)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(Bas
icDataSource.java:838)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou
rce.java:821)
at org.apache.commons.dbcp.BasicDataSource.setLogWriter(BasicDataSource.
java:576)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionSe
rvlet.java:816)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:389)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:888)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:77
6)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex
t.java:3363)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3
586)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:774)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:76
0)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:548) at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDep
loyer.java:260)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:741)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.j
ava:512)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:354
)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:671)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1149) at org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316
)
at org.apache.catalina.core.StandardService.start(StandardService.java:4
50)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:214
3)
at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
想知道是网络的问题,还是org.apache.commons.dbcp.BasicDataSource与ORACLE 9I RAC兼容有问题,但是奇怪的是不是每次都有问题,而且使用Oracle客户端连接服务器时是没有问题,故我觉得网络应该可能没有问题。
进入运行阶段后,需要将其中一个数据源连接的数据库移动到另外一个地方,不在同属一个交换机内部,但也是局域网,那边的数据库改为了ORACLE 9I RAC,相应的配置也进行了修改,修改如下:
<data-source key="IPSdataSource" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<set-property property="url" value="jdbc:oracle:thin:@(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.1.20)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.1.21)(PORT = 1521))
(LOAD_BALANCE = yes)
)
(CONNECT_DATA =
(SERVICE_NAME = db5)
(SERVER=DEDICATED)
)
)"
/>
但是在启动时,有时会有如下的错误提示:
2006-4-5 17:48:10 org.apache.struts.action.ActionServlet initModuleDataSources
严重: Initializing application data source IPSdataSource
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFact
ory, cause:
java.sql.SQLException: Io 异常: The Network Adapter could not establish the conn
ection
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.ja
va:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(Driv
erConnectionFactory.java:82)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(Poolable
ConnectionFactory.java:300)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(Bas
icDataSource.java:838)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou
rce.java:821)
at org.apache.commons.dbcp.BasicDataSource.setLogWriter(BasicDataSource.
java:576)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionSe
rvlet.java:816)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:389)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:888)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:77
6)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex
t.java:3363)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3
586)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:774)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:76
0)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:548) at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDep
loyer.java:260)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:741)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.j
ava:512)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:354
)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:671)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1149) at org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316
)
at org.apache.catalina.core.StandardService.start(StandardService.java:4
50)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:214
3)
at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
想知道是网络的问题,还是org.apache.commons.dbcp.BasicDataSource与ORACLE 9I RAC兼容有问题,但是奇怪的是不是每次都有问题,而且使用Oracle客户端连接服务器时是没有问题,故我觉得网络应该可能没有问题。
解决方案 »
- HttpClient登陆下载文件问题
- 菜鸟请教这条sql语句哪里有问题!
- 求一句MYSQL语句
- 我在javabean中写了好多html的语法,在使用struts输出时,不能显示html样子,请问怎么处理
- Syntax error converting the varchar value 'null' to a column of data type int.为什么会出现这样的错误?
- 各位高手看看这个bean有什么问题,不知道为什么jsp出错阿!
- 关于框架中页面及时刷新问题?
- String类型日期转换成date类型日期,再提取间隔
- JSP主要讲什么?
- tomcat下jsp和bean放在哪些目录?
- 急等 tomcat通过windows服务启动无法访问网络路径的问题
- JSP中EL的问题
你先试一试在装oracle客户端的那台机器上用PL/SQL连数据库看能不能连上
我没有用过oracle,
它里面怎么有两个地址.