首页 文章

在Oracle Weblogic Server 10.3.6中创建数据源问题错误

提问于
浏览
0

我在本地计算机Windows 7中安装了Oracle Weblogic Server . 现在我正在尝试创建一个新的数据源 .

我有一个托管在不同位置的数据库 . 我有连接属性,我可以从我的机器中的SQL_Developer客户端成功执行测试连接 .

数据库连接细节:

> URL : jdbc:oracle:thin:@hostname:port:DB_Name
> 
> Driver Class : oracle.jdbc.xa.client.OracleXADataSource

但是,当我在weblogic服务器中使用相同的连接属性连接到同一个数据库时,它会抛出以下错误:

> Connection test failed.
IO Error: The Network Adapter could not establish the connection

oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:458)
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546)
oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280)
oracle.jdbc.xa.client.OracleXADataSource.getPooledConnection(OracleXADataSource.java:469)
oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:156)
oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:101)
weblogic.jdbc.common.internal.DataSourceUtil.testConnection(DataSourceUtil.java:314)
com.bea.console.utils.jdbc.JDBCUtils.testConnection(JDBCUtils.java:734)
com.bea.console.actions.jdbc.datasources.createjdbcdatasource.CreateJDBCDataSource.testConnectionConfiguration(CreateJDBCDataSource.java:474)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:870)
org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:809)
org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:478)
org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:306)

下面是我通过控制台获得的堆栈跟踪:

> 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:247)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1102)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:320)

继续下面:

> Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    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)

我的机器中有以下版本:

>    JDK : 1.7
>    Weblogic : 10.3.6
>    ojdbc6.jar (part of weblogic installation, no extra 3rd party driver being used)

请告诉我在weblogic服务器中的数据源配置期间我错过了什么 . 请帮我解决这个问题 .

1 回答

  • 0

    在寻找错误后,终于明白了实际问题是什么 .

    Java 7默认使用IPv6协议 . 所以我强制使用java来代替IPv6 .

    方案:

    打开已安装weblogic的域文件夹 . 默认情况下,如果您在安装期间不更改名称,则名称为“base_domain” . 所以进入“base_domain / bin”并打开文件“setDomainEnv.cmd”进行编辑(对于Linux机器使用文件setDomainEnv.sh),然后查找以下行:

    set JAVA_OPTIONS=%JAVA_OPTIONS%
    
    Just add a space after that and add the following : 
    -Djava.net.preferIPv4Stack=true
    
    So your final line should look like : set JAVA_OPTIONS=%JAVA_OPTIONS% -Djava.net.preferIPv4Stack=true
    

    并保存文件并出来 . 重新启动weblogic服务器并测试数据源 .

    Main thing is the parameter : -Djava.net.preferIPv4Stack=true
    

    您可以将它添加到您应该工作的环境变量中 . 但是,如果这不起作用,那么你可以按照我上面的做法进行操作 . 希望这可以帮助 !

相关问题