Re: Newbie Question
Date: 1998/03/18
Message-ID: <6eqba3$q19$1_at_hermes.is.co.za>#1/1
Germain Rioux wrote in message <6em3ka$c60$1_at_news.on>...
<snip>
>The Oracle "Navigator" recognizes the db and connects to it without any
>problems.
>
>When I try to connect to the db from other applications, such as SQL*Plus,
I
>get the following error message :
>
>"ORA-03121 no interface driver connected - function not performed"
>
>From the help files and manuals, I gathered this was a SQL*Net problem
which
>seemed strange ... since I'm running SQL*Plus on the same computer as the
db
>resides but I tried to create a TCP/IP entry for POLite with SQL*Net but
did
>not seem to have any success.
There are two ways to connect to a local Oracle database. The bequeth
protocol allows a direct connection between the client program and the
database instance, thus not using SQL*Net or the listener at all. The
database alias in TNSNAMES.ORA is usually defined as follows:
-- (example for 7.3 database)
orcl.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (COMMUNITY = beq.world) (PROTOCOL = BEQ) (PROGRAM = oracle73) (ARGV0 = oracle73ORCL) (ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))') )
)
(CONNECT_DATA = (SID = ORCL)
)
)
-- The other way is of course thru SQL*Net. Basically SQL*Net requires a protocol adapter and a protocol stack to run on: +-----------+ | SQL*NET | +-----------+ +-----------+ | Protocol | e.g. Oracle's TCP/IP protocol adapter | Adapter | +-----------+ +-----------+ | Operating | e.g. TCP/IP | System | | Protocol | | Stack | +-----------+ You therefore need to have the right protocol adapter installed or else SQL*Net is missing the interface between it and the operating system's protocol stack. For SQL*Net to work on the server platform, you need to configure and start the Oracle Listener. This piece of software listens and handles for client connections, creating (usually - depending on the config) a dedicated server process for the client application. On the client side, you need to correctly configure the TNSNAMES.ORA file with the network address of the listener, the protocol to use to communicate with it, the System ID of the database which to connect to etc. Both client and server can of course run on the same platform (a common misconception is that client-server always mean different hardware platforms). You can thus start up the listener to listen on the IP loopback address (127.0.0.1) and configure the TNSNAMES.ORA alias to connect to that address, i.e.: -- TNSNAMES loopback connection -- tcp-loopback.world = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = tcp.world) (PROTOCOL = TCP) (Host = 127.0.0.1) (Port = 1521) ) ) (CONNECT_DATA = (SID = ORCL) ) ) ------ -- LISTENER.ORA (listener config for loopback) -- LISTENER = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (Host = 127.0.0.1) (Port = 1521) ) ) STARTUP_WAIT_TIME_LISTENER = 0 CONNECT_TIMEOUT_LISTENER = 10 TRACE_LEVEL_LISTENER = ADMIN SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = ORCL) ) ) ---- You can startup the listener with a 'lsnrctl start' and then connect to your local database via the loopback with 'sqlplus23 sys/sys_at_tcp-loopback.world'. Hope this all made some sense to you. :-) regards, BillyReceived on Wed Mar 18 1998 - 00:00:00 CET