perhaps the error which I'm issuing is well known by you. I'm new
about DB Administration.
I'm trying to install an Oracle Database version 10.2.0.1, Standard
Edition, on a XP SP2 Professional OS based machine.
The installation process was successful, however when I try to connect
to the Database I get this error:
(SQLPlus)
SQL> CONNECT SYS/SADMIN@siebel AS SYSDBA
ERROR:
ORA-12514: TNS:listener does not currently know of service requested
in connect descriptor
I've already "googled" it, with no satisfactory conclusion.
These are my Database configuration files:
############
listener.ora:
############
# listener.ora Network Configuration File: D:\oracle\product
\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
############
tnsnames.ora:
############
# tnsnames.ora Network Configuration File: D:\oracle\product
\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
SIEBEL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = siebel)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
############
sqlnet.ora:
############
# sqlnet.ora Network Configuration File: D:\oracle\product
\10.2.0\db_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose
to
# install "Software Only", this file wont exist and without the
native
# authentication, they will not be able to connect to the database on
NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
########################################################################
The listener.log:
...
TNS-12514: TNS:listener does not currently know of service requested
in connect descriptor
02-MAR-2008 22:38:48 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)
(USER=))(SERVICE_NAME=siebel)) * (ADDRESS=(PROTOCOL=tcp)
(HOST=127.0.0.1)(PORT=2497)) * establish * siebel * 12514
TNS-12514: TNS:listener does not currently know of service requested
in connect descriptor
02-MAR-2008 22:38:48 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)
(USER=))(SERVICE_NAME=siebel)) * (ADDRESS=(PROTOCOL=tcp)
(HOST=127.0.0.1)(PORT=2499)) * establish * siebel * 12514
TNS-12514: TNS:listener does not currently know of service requested
in connect descriptor
02-MAR-2008 22:38:48 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)
(USER=))(SERVICE_NAME=siebel)) * (ADDRESS=(PROTOCOL=tcp)
(HOST=127.0.0.1)(PORT=2500)) * establish * siebel * 12514
TNS-12514: TNS:listener does not currently know of service requested
in connect descriptor
which is always increasing with same messages.
Might you help me, please? What did I make wrong?
The database should is named as SIEBEL.
PS: I've 4 services running: OracleServiceSIEBEL,
OracleOraDb10g_home1TNSListener, OracleOraDb10g_home1iSQL*Plus,
OracleDBConsolesiebel
I see two different areas which have me concerned.
1) (HOST = localhost)
I have always used a host name which resolves to a valid IP# or a valid IP#
2) SQLNET.AUTHENTICATION_SERVICES= (NTS)
This has caused many, many previous problems. Comment it out is my advice.
If you comment it out then stop & start listener again
use CUT & PASTE to show output from 2 following commands
lsnrctl status
lsnrctl service
12514, 00000, "TNS:listener does not currently know of service requested in
connect descriptor"
// *Cause: The listener received a request to establish a connection to a
// database or other service. The connect descriptor received by the
listener
// specified a service name for a service (usually a database service)
// that either has not yet dynamically registered with the listener or has
// not been statically configured for the listener. This may be a
temporary
// condition such as after the listener has started, but before the
database
// instance has registered with the listener.
// *Action:
// - Wait a moment and try to connect a second time.
// - Check which services are currently known by the listener by
executing:
// lsnrctl services <listener name>
// - Check that the SERVICE_NAME parameter in the connect descriptor of
the
// net service name used specifies a service known by the listener.
// - If an easy connect naming connect identifier was used, check that
// the service name specified is a service known by the listener.
// - Check for an event in the listener.log file.
If the suggestions from Ana don't help you, I have one. I have been
seeing a great deal of this exact problem with 10.2.0.x. It was not a
problem with previous versions.
I use this solution only as a last resort, since the service is
supposed to automatically register itself with the listener on
startup. But, if you can't otherwise make it work, I have found that
manually configuring the service with the listener almost always
works.
Change your listener.ora like this:
# listener.ora Network Configuration File: D:\oracle\product
# \10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = SIEBEL)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SERVICE_DBNAME=SIEBEL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
Stop and restart the listener. I think you'll find this will make it
work.
Hope this helps,
- Arch
In some environments, the only host I want accessing a particular
listener is localhost (don't want other servers using this box as a
gateway to another external source for example). The listeners from
9.2.0.6, 9.2.0.8, 10.2.0.2, 10.2.0.3 on UNIX seem to change this
functionality depending on the day (or so it seems). If the only
applications accessing this are on the localhost - then this is valid.
If you need to access it from outside - it may or may not work.
>
> In some environments, the only host I want accessing a particular
> listener is localhost (don't want other servers using this box as a
> gateway to another external source for example). The listeners from
> 9.2.0.6, 9.2.0.8, 10.2.0.2, 10.2.0.3 on UNIX seem to change this
> functionality depending on the day (or so it seems). If the only
> applications accessing this are on the localhost - then this is valid.
> If you need to access it from outside - it may or may not work.
>
If/when you do not want access from any other system, then do:
lsnrctl stop
No listener is required to access the DB from the DB server system!
To be more precise:
The database registers itself at the listener when it is started up and
will try again at regular intervals.
So if you start the listener after the database server, you'll either have
to waut some time until the database registers, or you connect as SYSDBA
and issue:
ALTER SYSTEM REGISTER;
Maybe that is the problem.
Yours,
Laurenz Albe
Hi there,
many thanks it just works. Meanhile, the data you requested:
D:\oracle\product\10.2.0\db_1\BIN>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-
MAR-2008 19:39
:28
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ALPHA)
(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version
10.2.0.1.0 - Produ
ction
Start Date 03-MAR-2008 19:28:30
Uptime 0 days 0 hr. 10 min. 58 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File D:\oracle\product\10.2.0\db_1\network\admin
\listener.o
ra
Listener Log File D:\oracle\product\10.2.0\db_1\network\log
\listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ALPHA)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this
service...
Service "siebel" has 1 instance(s).
Instance "siebel", status READY, has 1 handler(s) for this
service...
Service "siebelXDB" has 1 instance(s).
Instance "siebel", status READY, has 1 handler(s) for this
service...
Service "siebel_XPT" has 1 instance(s).
Instance "siebel", status READY, has 1 handler(s) for this
service...
The command completed successfully
D:\oracle\product\10.2.0\db_1\BIN>lsnrctl service
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-
MAR-2008 19:40
:46
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ALPHA)
(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this
service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
Service "siebel" has 1 instance(s).
Instance "siebel", status READY, has 1 handler(s) for this
service...
Handler(s):
"DEDICATED" established:32 refused:0 state:ready
LOCAL SERVER
Service "siebelXDB" has 1 instance(s).
Instance "siebel", status READY, has 1 handler(s) for this
service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1002 state:ready
DISPATCHER <machine: ALPHA, pid: 2636>
(ADDRESS=(PROTOCOL=tcp)(HOST=ALPHA)(PORT=2194))
Service "siebel_XPT" has 1 instance(s).
Instance "siebel", status READY, has 1 handler(s) for this
service...
Handler(s):
"DEDICATED" established:32 refused:0 state:ready
LOCAL SERVER
**********************************************************************
**********************************************************************
It the Enterprise Manager webpage (I'm using it to manage the DB),
I've the following message in the top of the page:
Error
java.lang.Exception: Number of responses does not match queries
This message comes out at the Home Page of the Manager of "Database
Instance: siebel", I'm logged with the user SYS.
Even though is everything ok?
Best Regards,
And Thank You one more time
Depends on what you are accessing... I have a configuration where in a
database a dblink uses a DB2Connect client via Heterogeneous Services
that connects to a DB2 mainframe. We use a separate listener that only
runs on localhost - which as I stated, prevents this box from becoming a
gateway. Obviously stopping this listener prevents access to the DB2
database as well and would not be acceptable. It is scary when you find
a DEV system using a PROD server as a gateway to a PROD Mainframe DB2
database... - and we found the another even more scary config -- a prod
server using a DEV system as a gateway to a PROD DB2 database. These
have all been fixed. :)
You should be ok after that ...
Cheerios!!
Sandeep Phukan
Look into applying the current patchset (10.2.0.3) and one-off
critical patch updates to avoid encountering solved issues. Metalink
has documentation that describes how to accomplish this.
-bdbafh