The network adapter could not establish the connection - Oracle 11g(网络适配器无法建立连接 - Oracle 11g)
问题描述
我编写了一个 servlet 程序,我希望它连接到我的 Oracle 数据库,但它给了我一个错误.我正在使用 Eclipse Helios、Tomcat 6.0.37、Oracle 11g (11.2.0.1.0)、ojdbc6.jar(在服务器项目的运行配置中添加).我能够通过 SQL Plus 接口连接到数据库,甚至可以从 Eclipse 的数据库开发角度启动连接.但是当我尝试通过我的 servlet 进行连接时,我收到了错误消息.对于我的 servlet,我使用的是端口号 9090,而对于数据库,我使用的是默认的 1521.
I wrote a servlet program and I want it to connect to my Oracle database but its giving me an error. I am using Eclipse Helios, Tomcat 6.0.37, Oracle 11g (11.2.0.1.0), ojdbc6.jar(added in run configuration of the Server project). I am able to connect to the database through the SQL Plus interface and even can start a connection from Eclipse's database development perspective. But when i am trying to connect through my servlet I am getting the error. For my servlet i am using the port number 9090 and for the database the default 1521.
java.sql.SQLException: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.android.collegenotificationsystem.RegistrationServlet.doGet(RegistrationServlet.java:43)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:359)
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422)
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:672)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:237)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
    ... 21 more
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:141)
    at oracle.net.nt.ConnOption.connect(ConnOption.java:123)
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:337)
    ... 26 more
这是我建立连接的代码:
This is my code for establishing the connection:
Class.forName("oracle.jdbc.OracleDriver");Connection con = (Connection) DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl","username","password"); 
我尝试执行 lsnrctl stat 命令,结果如下:
I tried executing the lsnrctl stat command and this was the result:
LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 03-AUG-2013 16:08
:46
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Produ
ction
Start Date                03-AUG-2013 12:14:19
Uptime                    0 days 3 hr. 54 min. 28 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   C:appOwnerproduct11.2.0dbhome_1
etworkadminlis
tener.ora
Listener Log File         c:appownerdiag	nslsnrOwner-PClisteneralertlog.
xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl.168.1.56" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.168.1.56" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
这些是我的 tnsnames.ora 文件的内容:
These are the contents of my tnsnames.ora file:
LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.168.1.56)
    )
  )
任何帮助将不胜感激.提前致谢.
Any help would be appreciated. Thanks in advance.
推荐答案
我遇到了类似的问题.它通过一个简单的命令为我解决.
I had the similar issue. its resolved for me with a simple command.
lsnrctl start
网络适配器异常的原因是:
The Network Adapter exception is caused because:
- 数据库主机名或端口号错误 (OR)
 - 数据库 TNSListener 尚未启动.可以使用 
lsnrctl实用程序启动 TNSListener. 
- The database host name or port number is wrong (OR)
 - The database TNSListener has not been started. The TNSListener may be started with the 
lsnrctlutility. 
尝试使用命令提示符启动侦听器:
Try to start the listener using the command prompt:
- 单击开始,在搜索字段中键入 
cmd,当cmd出现在选项列表中时,右键单击它并选择以管理员身份运行". - 在命令提示符窗口中,键入不带引号的 
lsnrctl start并按 Enter. - 输入 
Exit并按 Enter. 
- Click Start, type 
cmdin the search field, and whencmdshows up in the list of options, right click it and select ‘Run as Administrator’. - At the Command Prompt window, type 
lsnrctl startwithout the quotes and press Enter. - Type 
Exitand press Enter. 
希望有帮助.
这篇关于网络适配器无法建立连接 - Oracle 11g的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:网络适配器无法建立连接 - Oracle 11g
				
        
 
            
        - 如何使用 pip 安装 Python MySQLdb 模块? 2021-01-01
 - 使用 Oracle PL/SQL developer 生成测试数据 2021-01-01
 - 更改自动增量起始编号? 2021-01-01
 - SQL 临时表问题 2022-01-01
 - 在SQL中,如何为每个组选择前2行 2021-01-01
 - 导入具有可变标题的 Excel 文件 2021-01-01
 - 远程 mySQL 连接抛出“无法使用旧的不安全身份验证连接到 MySQL 4.1+"来自 XAMPP 的错误 2022-01-01
 - 以一个值为轴心,但将一行上的数据按另一行分组? 2022-01-01
 - 如何将 Byte[] 插入 SQL Server VARBINARY 列 2021-01-01
 - 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql 2022-01-01
 
						
						
						
						
						
				
				
				
				