Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Newbie Question

Re: Newbie Question

From: Billy Verreynne <vslabs_at_onwe.co.za>
Date: 1998/03/18
Message-ID: <6eqba3$q19$1@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,
Billy
Received on Wed Mar 18 1998 - 00:00:00 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US