当前位置: 代码迷 >> J2SE >> c3p0连接oralce集群的有关问题
  详细解决方案

c3p0连接oralce集群的有关问题

热度:96   发布时间:2016-04-24 01:51:23.0
c3p0连接oralce集群的问题
代码如下:

Java code
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();    }}


错误如下:
XML code
190015 [Task-Thread-for-com.mchange.v2.async.ThreadPerTaskAsynchronousRunner@62e8ef4c] WARN  com.mchange.v2.resourcepool.BasicResourcePool  - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@5eb10190 -- 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.SQLException: No suitable driver    at java.sql.DriverManager.getDriver(DriverManager.java:264)    at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)    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.ThreadPerTaskAsynchronousRunner$TaskThread.run(ThreadPerTaskAsynchronousRunner.java:255)


oracle的jar包在classpath里的,如果不解集群,使用下面的url,测试通过
 private final static String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:orcl";

------解决方案--------------------
探讨

引用:

不是提示了 说 jdbc 驱动 不 匹配吗?


没那么简单,报错的方法:
Java code

/**
* Attempts to locate a driver that understands the given URL.
* The <code>DriverManager</code> attempt……

------解决方案--------------------
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) ) )";
  相关解决方案