Oracle连接的问题:The Network Adapter could not establish the connection

舒克贝塔 发布于 2015/05/20 13:55
阅读 33K+
收藏 0

【华为云1024程序员节·向云而生】预约直播 抽14件华为电子产品礼包!>>>

大家好:

我的网站在发布时遇到了一下的问题:

2015-05-20 14:32:47,304 WARN : com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@184a07c -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:

java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:458)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
        at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
        at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
        at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
        at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
        at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
        at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
        at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
        at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
        at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:392)
        at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:434)
        at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:687)
        at oracle.net.ns.NSProtocol.connect(NSProtocol.java:343)
        at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1102)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:320)
        ... 12 more
Caused by: java.net.ConnectException: Connection timed out
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
        at java.net.Socket.connect(Socket.java:546)
        at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:150)
        at oracle.net.nt.ConnOption.connect(ConnOption.java:133)
        at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:370)

        ... 17 more

数据库连接:

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@dasdwwwww.exadata.eeaseee.se:1521/SEANPRD
jdbc.user=DBUSER
jdbc.pass=DBPASSWORD

@Bean(name="dataSource", destroyMethod="close")
public DataSource bamsDataSource() throws PropertyVetoException {
    ComboPooledDataSource dataSource = new ComboPooledDataSource();
    dataSource.setDriverClass(env.getProperty("jdbc.driverClassName"));
    dataSource.setJdbcUrl(env.getProperty("jdbc.url"));
    dataSource.setUser(env.getProperty("jdbc.user"));
    dataSource.setPassword(env.getProperty("jdbc.pass"));

    dataSource.setCheckoutTimeout(10000);
    dataSource.setMinPoolSize(1);
    dataSource.setMaxPoolSize(15);
    dataSource.setMaxStatements(50);
    dataSource.setMaxIdleTime(1200);
    dataSource.setIdleConnectionTestPeriod(6000);

    return dataSource;
}

具体细节是这样的:

我的网站需要远程访问另一个网站的数据库,应对方网站提供的连接信息,我可以通过电脑上的Client连接并且访问对方的数据库,我的网站在我本机的Eclipse上运行也可以访问对方的数据库。

但是当我发布我的网站到服务器上的时候,是连接不上的。从我的服务器,我可以ping通,telnet 和 traceroute到对方的网站。

请问我还有什么对方没有配置好?

非常感谢




加载中
1
rayeaster
rayeaster

条件允许的话,可以在你的服务器上装一个oracle instant client测试一下能不能连接上对方数据库。

可以问一下对方的服务器上的oracle数据库是不是做了ip限制,可以参考这个文章

另外,你的服务器上是否有防火墙,如果是,尝试关闭或者增加规则允许访问1521端口

0
甘薯
甘薯
是否对方的网站oracle服务器配置了允许接入的IP段?
0
舒克贝塔
舒克贝塔

引用来自“rayeaster”的评论

条件允许的话,可以在你的服务器上装一个oracle instant client测试一下能不能连接上对方数据库。

可以问一下对方的服务器上的oracle数据库是不是做了ip限制,可以参考这个文章

另外,你的服务器上是否有防火墙,如果是,尝试关闭或者增加规则允许访问1521端口

装了,依然连不上。后来我问IP部门,发现是防火墙的问题。现在联通了。
0
rayeaster
rayeaster

引用来自“rayeaster”的评论

条件允许的话,可以在你的服务器上装一个oracle instant client测试一下能不能连接上对方数据库。

可以问一下对方的服务器上的oracle数据库是不是做了ip限制,可以参考这个文章

另外,你的服务器上是否有防火墙,如果是,尝试关闭或者增加规则允许访问1521端口

引用来自“舒克贝塔”的评论

装了,依然连不上。后来我问IP部门,发现是防火墙的问题。现在联通了。
嗯,一般都是iptables(防火墙)的问题。如果我的回答对你有帮助,麻烦采纳我的答案为“最佳答案”吧:)
返回顶部
顶部