An IPC (Inter-Process Communication) connection
Example setup:
Listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
tnsnames.ora:
proddb01_ipc =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = proddb01)
)
)
Connect to your database locally:sqlplus /nolog SQL*Plus: Release 11.2.0.4.0. Production on Thu Jan 22 15:35:44 2015 Copyright (c) 1982,2013, Oracle. All rights reserved. SQL> connect scott/tiger Connected.From another window, create another session:
sqlplus /nolog SQL*Plus: Release 11.2.0.4.0. Production on Thu Jan 22 15:35:44 2015 Copyright (c) 1982,2013, Oracle. All rights reserved. SQL> connect scott/tiger@proddb01_ipc Connected.
Check the connections and their types:
SELECT S.SID, S.OSUSER,S.PROGRAM,S.USERNAME,S.MACHINE, SCI.NETWORK_SERVICE_BANNER,S.LOGON_TIME,S.STATUS
FROM V$SESSION S INNER JOIN V$SESSION_CONNECT_INFO SCI
ON S.SID = SCI.SID
WHERE S.USERNAME = UPPER('scott')
AND SCI.NETWORK_SERVICE_BANNER LIKE '%IPC%'
OR SCI.NETWORK_SERVICE_BANNER LIKE INITCAP('%BEQ%')
AND S.TYPE <> 'BACKGROUND'
ORDER BY LOGON_TIME;
And here is the output. Notice how the first session (.. / as sysdba) results in a Bequeath session, while the other one ( ...@proddb_ipc) results in a session using IPC:
| SID | OSUSER | PROGRAM | USERNAME | MACHINE | NETWORK_SERVICE_BANNER | LOGON_TIME | STATUS |
|---|---|---|---|---|---|---|---|
9 | oracle | sqlplus@myserver.mydomain.com (TNS V1-V3) | SCOTT | myserver.mydomain.com | Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production | 22.01.2015 15:35:49 | INACTIVE |
1160 | oracle | sqlplus@myserver.mydomain.com (TNS V1-V3) | SCOTT | myserver.mydomain.com | Unix Domain Socket IPC NT Protocol Adaptor for Linux: Version 11.2.0.4.0 - Production | 22.01.2015 15:40:44 | INACTIVE |