与orale数据库机器能够ping通,却一直连接出异常(一下是连接错误代码)...能够解决问题者追加悬赏100!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了与orale数据库机器能够ping通,却一直连接出异常(一下是连接错误代码)...能够解决问题者追加悬赏100!!相关的知识,希望对你有一定的参考价值。

连接代码:
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@10.231.161.150:1521:sid";
String userName = "use";
String password = "pas";
Connection con = null;
try
Class.forName(driver);
con = DriverManager.getConnection(url, userName, password);
catch (LException e)
e.printStackTrace();

异常代码:
java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
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.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.Tool.contextInitialized(Tool.java:29)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:927)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:890)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
能否告诉该如何配置net Manager?

数据库服务器能够ping通,只能说明局域网的连接是正常的,不能说明数据库已经配置了连接。
所以,首先确保你在自己的计算机(运行程序的计算机)上,在数据库查看工具上能够访问该数据库无误后,才能开始运行你的程序。
具体点说,你先要用Oracle的Net Manager配置数据库的连接,只要指定数据源的用户名、密码、sid就可以连上了。之后在pl/sql或者toad之类的查询分析器软件内查询到该数据源的数据,再运行你的程序吧。

配置Net Manager很简单,但文字描述说起来挺麻烦。网上搜了一下,没找到。这样吧,我简单说一下。
1.在开始——程序——Oracle-Oraclehome92——Configuration and Migration Tools菜单中找到NetManager.
2.打开后,选择主界面中的本地——服务命名。接着选中菜单"编辑",选择"创建",这样就打开了一个配置窗口。
3.第一个窗口是你为这个连接在本机配置的别名,你可以自己输入一个名称,假设就叫OraCon.
4.选择下一步,默认选择"TCP/IP(Internet协议)",选择下一步,把远程主机的IP写上,选择下一步,这时会提示你输入Oracle的服务名,这里你应该填写远程主机的数据库sid,这个sid是你在安装oracle时候就指定的。输入以后,再选择下一步就可以测试了,默认的测试用户是"Scott/Tiger"。你也可以更改登录用户来测试。
5.测试通过后,选择主菜单"文件"——"保存网络配置"即可。

以上操作完成,那么你本地的连接字符串就应该是
User Id = user;Password = pass;Data Source = OraCon(这个是你在NetManager配置的别名)。

搞定。
参考技术A 连接串里的sid写的正确吗?
你的服务名就是 sid 吗?

以上是关于与orale数据库机器能够ping通,却一直连接出异常(一下是连接错误代码)...能够解决问题者追加悬赏100!!的主要内容,如果未能解决你的问题,请参考以下文章

linux下能ping通网管却ping不通百度

linux虚拟机如何与宿主机ping通?

[linux学习]主机无法ping通虚拟机,但虚拟机却可以ping通主机

如何连接虚拟机上的ORACLE数据库?

吴裕雄--天生自然 HADOOP大数据分布式处理:CenterOS 7 多台物理机虚拟机相互桥连接ping通,并且能够成功连接外网

android 模拟器无法ping通主机