簡體   English   中英

網絡適​​配器無法建立連接 - Oracle 11g

[英]The network adapter could not establish the connection - Oracle 11g

我寫了一個 servlet 程序,我希望它連接到我的 Oracle 數據庫,但它給了我一個錯誤。 我正在使用 Eclipse Helios,Tomcat 6.0.37,Oracle 11g,項目配置(11.2.6.0.1.0.jar) 我可以通過 SQL Plus 接口連接到數據庫,甚至可以從 Eclipse 的數據庫開發角度開始連接。 但是當我試圖通過我的 servlet 連接時,我得到了錯誤。 對於我的 servlet,我使用端口號 9090,而對於數據庫,我使用默認端口號 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

這是我建立連接的代碼:

Class.forName("oracle.jdbc.OracleDriver"); Connection con = (Connection) DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl","username","password");

我嘗試執行 lsnrctl stat 命令,結果如下:

 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:\app\Owner\product\11.2.0\dbhome_1\network\admin\lis tener.ora Listener Log File c:\app\owner\diag\tnslsnr\Owner-PC\listener\alert\log. xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) (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 文件的內容:

 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) ) )

任何幫助,將不勝感激。 提前致謝。

我有類似的問題。 它通過一個簡單的命令為我解決了。

 lsnrctl start

導致網絡適配器異常的原因是:

  1. 數據庫主機名或端口號錯誤 (OR)
  2. 數據庫 TNSListener 尚未啟動。 TNSListener 可以使用lsnrctl實用程序啟動。

嘗試使用命令提示符啟動偵聽器:

  1. 單擊開始,在搜索字段中鍵入cmd ,當cmd出現在選項列表中時,右鍵單擊它並 select '以管理員身份運行'。
  2. 在命令提示符 window 中,鍵入不帶引號的lsnrctl start並按 Enter。
  3. 鍵入Exit並按 Enter。

希望能幫助到你。

首先檢查你的監聽器是打開還是關閉。 Go 到網絡管理器然后本地 -> 服務命名 -> orcl。 然后更改您的主機名並輸入您的 PC 名稱。 現在將 go 更改為 LISTENER 並更改 HOST 並輸入您的 PC 名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM