Here's my setup:
One UNIX server with multiple DBs
Two listeners - one that services all DBs (including the traxtest DB) via TCP
one that services just the traxtest DB via IPC
listener.ora syntax:
listener_d1 =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host = pisa)
(Port = 1521)
(QUEUESIZE=100)))
SID_LIST_listener_d1 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = traxtest.world)
(SID_NAME = traxtest)
(ORACLE_HOME = ...)
listener_traxtest =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=ipc)
(KEY=PNPKEY)))
SID_LIST_listener_traxtest =
(SID_DESC =
(GLOBAL_DBNAME = traxtest.world)
(SID_NAME = traxtest)
(ORACLE_HOME = ...)
One tnsnames.ora file:
traxtest.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = ...)
(Port = 1521))
(ADDRESS =
(PROTOCOL = IPC)
(KEY = PNPKEY)))
(CONNECT_DATA = (SID = traxtest)))
Both listeners are up. Then on another DB on the same server I create a private DB link to traxtest:
create database link traxtest
connect to tntdev_to_traxtest_link
identified by ...
using '(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))(SID_NAME=traxtest))';
However, when I SELECT using the link, I get the following:
SQL> select * from global_names@traxtest;
select * from global_names@traxtest
*
ERROR at line 1:
ORA-12504: TNS:listener was not given the SID in CONNECT_DATA
I have tried several differnet combinations of DB link descriptions, but to no avail. Does anyone have a clue as to the problem here? I've never set up an IPC connection before.