Ich versuche Oracle XE dazu zu bringen, Verbindungen von JDBC zu akzeptieren. Ich benutze ojdbc6.jar von der XE-Installation (es gibt auch die ojdbc5 und ojdbc6_g jars). Ich habe mit oracle.jdbc.OracleDriver und oracle.jdbc.driver.OracleDriver versucht, die Treiberklasse ist registriert. Ich benutze den Deskriptor: jdbc: oracle: thin: @localhost: 1521: XE.TimeoutException Verbindung zu Oracle XE 11 über JDBC
Ich habe auch versucht, enden mit/XE statt: XE, die ich manchmal gesehen habe. Habe auch den tatsächlichen Hostnamen Kaveri anstelle von localhost versucht.
Ich kann mit sqlplus anmelden, die Datenbank ist geöffnet und der Hauptdienst und TNS-Listener-Dienst werden ausgeführt.
listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\Data\OracleXE\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\Data\OracleXE\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = Kaveri)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
tsnames.ora:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Kaveri)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
I
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask.get(Unknown Source)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Alternativ kann ein Java-Programm unserer eigenen Verwendung ich
java.sql.SQLRecoverableException: IO Error: Socket read timed out
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:715)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:385)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
...
Caused by: oracle.net.ns.NetException: Socket read timed out
at oracle.net.ns.Packet.receive(Packet.java:350)
at oracle.net.ns.NSProtocolStream.negotiateConnection(NSProtocolStream.java:153)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:263)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486)
... 39 more
erhalten
lsnrctl scheint nach einer Weile zu hängen:
> lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.2.0 - Production on 04-JUL-2017
17:29:09
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12560: TNS:protocol adapter error
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Kaveri)(PORT=1521)))
Dies ist eine „frische Neuinstallation“ von Oracle XE auf Windows 10. Zur Vermeidung von Zweifel, ich Firewall auch ausgeschaltet, ohne Wirkung (ich hoffe, !).
Wie debuggt die Verbindung zu Oracle? Vielen Dank.
UPDATE: Ich lag - oder Windows war - wenn es die TNSListener als Lauf auflistet, ist die Situation tatsächlich „Der OracleXETNSListener-Dienst auf dem lokalen Computer gestartet und dann angehalten ...“