Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该如何为带有LDAP和两个LDAP服务器的Oracle编写JDBCURL?_Java_Oracle_Url_Jdbc_Failover - Fatal编程技术网

Java 我应该如何为带有LDAP和两个LDAP服务器的Oracle编写JDBCURL?

Java 我应该如何为带有LDAP和两个LDAP服务器的Oracle编写JDBCURL?,java,oracle,url,jdbc,failover,Java,Oracle,Url,Jdbc,Failover,我有一个带有LDAP的Oracle数据库,可以通过编写smth进行连接,如: jdbc:oracle:thin:@ldap://oid0.wow.com:666/chost,cn=OracleContext,dc=wow,dc=com 但这不是故障转移(我们有另一台带有Oracle LDAP的服务器-oid1.wow.com:666) 如何使用这两台服务器实现故障切换? 我找到了这个,但它不起作用: java.sql.SQLException: Io exception: Invalid LD

我有一个带有LDAP的Oracle数据库,可以通过编写smth进行连接,如:

jdbc:oracle:thin:@ldap://oid0.wow.com:666/chost,cn=OracleContext,dc=wow,dc=com
但这不是故障转移(我们有另一台带有Oracle LDAP的服务器-oid1.wow.com:666)

如何使用这两台服务器实现故障切换? 我找到了这个,但它不起作用:

java.sql.SQLException: Io exception: Invalid LDAP URL specified
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:147)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:257)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:389)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:454)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:802)
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)
java.sql.SQLException:Io异常:指定的LDAP URL无效
位于oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
位于oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:147)
位于oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:257)
位于oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:389)
位于oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:454)
位于oracle.jdbc.driver.T4CConnection(T4CConnection.java:165)
位于oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
位于oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:802)
位于com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
位于com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
在com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
位于com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.AcquisiteSource(C3P0PooledConnectionPool.java:137)
位于com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(basicResourceSourcePool.java:1014)
在com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
位于com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
位于com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
是司机

抛出调试我发现了String.concat()NPE的另一个问题 我们的驱动程序(com.oracle ojdbc14 10.2.0.4.0-在MVN repo中找到)不支持多个URL

当我从Oracle站点(10.1.0.5'ojdbc14_g')下载驱动程序时,一切都开始正常工作

所有这些看起来都很奇怪,因为10.1.0.5似乎是官方网站上Oracle JDBC驱动程序的最后一个版本(当然是针对Oracle 10)

给你!故障转移数据源bean:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <!--common dataSource props -->
    <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="jdbcUrl" value="jdbc:oracle:thin:@ldaps://oid0.wow.com:666/chost,cn=OracleContext,dc=wow,dc=com ldaps://oid1.wow.com:666/chost,cn=OracleContext,dc=wow,dc=com"/>
    <property name="overrideDefaultUser" value="useruser"/>
    <property name="overrideDefaultPassword" value="strongpassword"/>
    <!-- special c3p0 props -->
    <property name="minPoolSize" value="1"/>
    <property name="maxPoolSize" value="10"/>
    <property name="maxStatements" value="10"/>
    <property name="breakAfterAcquireFailure" value="false"/>
    <property name="acquireRetryAttempts" value="5"/>
    <property name="testConnectionOnCheckin" value="true"/>
    <property name="properties">
        <props>
            <prop key="oracle.net.ldap_loadbalance">OFF</prop>
        </props>
    </property>
</bean>
是司机

抛出调试我发现了String.concat()NPE的另一个问题 我们的驱动程序(com.oracle ojdbc14 10.2.0.4.0-在MVN repo中找到)不支持多个URL

当我从Oracle站点(10.1.0.5'ojdbc14_g')下载驱动程序时,一切都开始正常工作

所有这些看起来都很奇怪,因为10.1.0.5似乎是官方网站上Oracle JDBC驱动程序的最后一个版本(当然是针对Oracle 10)

给你!故障转移数据源bean:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <!--common dataSource props -->
    <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="jdbcUrl" value="jdbc:oracle:thin:@ldaps://oid0.wow.com:666/chost,cn=OracleContext,dc=wow,dc=com ldaps://oid1.wow.com:666/chost,cn=OracleContext,dc=wow,dc=com"/>
    <property name="overrideDefaultUser" value="useruser"/>
    <property name="overrideDefaultPassword" value="strongpassword"/>
    <!-- special c3p0 props -->
    <property name="minPoolSize" value="1"/>
    <property name="maxPoolSize" value="10"/>
    <property name="maxStatements" value="10"/>
    <property name="breakAfterAcquireFailure" value="false"/>
    <property name="acquireRetryAttempts" value="5"/>
    <property name="testConnectionOnCheckin" value="true"/>
    <property name="properties">
        <props>
            <prop key="oracle.net.ldap_loadbalance">OFF</prop>
        </props>
    </property>
</bean>

是。此外,如果您正在使用11g驱动程序并通过LDAPS连接到OID,则至少需要11.2.0.3版,否则将出现NullPointer异常。是。此外,如果您正在使用11g驱动程序并通过LDAPS连接到OID,则至少需要11.2.0.3版,否则将出现NullPointer异常。